Submission #1273104
Source Code Expand
#include <fstream>
#include <iostream>
#include <algorithm>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <string>
#include <sstream>
#include <map>
#include <set>
#include <vector>
#include <cmath>
#include <queue>
#include <random>
using namespace std;
#define min(a,b) ((a)<(b) ? (a):(b))
#define max(a,b) ((a)>(b) ? (a):(b))
long long maxd(long long a,long long b){
if(a>=b){
return a;
}
return b;
}
long long mind(long long a,long long b){
if(a<=b){
return a;
}
return b;
}
long long gcd(long long a, long long b){
if(a<b){
swap(a,b);
}
while(b){
long long r = a%b;
a=b;
b=r;
}
return a;
}
long long lcm(long long a, long long b){
return (a*b)/gcd(a,b);
}
int isPrim(int a){
if(a==1){
return 0;
}
for(int i=2;i<=(a+1)/2;i++){
if(a%i==0){
return 0;
}
}
return 1;
}
long long mod_pow(long long x, long long n, long long mod){
//xのn乗を計算するのにn乗を2進表記にして計算
//x^22 = x^16 + x^4 + x^2
long long ret=1;
while(n>0){
if(n%2==1){
ret=(ret*x)%mod;//答えに付加
}
x=(x*x)%mod;//2乗
n=n/2;
}
return ret;
}
struct XX{
int a;
int b;
};
class xxIntu {
public:
bool operator()(const XX& riLeft, const XX& riRight) const {
//第2条件
if((riLeft.a) == (riRight.a)){
return riLeft.b < riRight.b;//<:昇順(小さいものから順番)、>:降順(大きいものから順番)
}
//第1条件
return (riLeft.a) < (riRight.a);
}
};
int ppar[200001];
int rrank[200001];
void init(int n){
for(int i=1;i<=n;i++){
ppar[i]=i;
rrank[i]=0;
}
}
int find(int x){
if(ppar[x]==x){
return x;
}else{
return ppar[x]=find(ppar[x]);
}
}
void unite(int x,int y){
x=find(x);
y=find(y);
if(x==y){
return;
}
if(rrank[x]<rrank[y]){
ppar[x]=ppar[y];
}else{
ppar[y]=x;
if(rrank[x]==rrank[y]){
rrank[x]++;
}
}
}
bool same(int x,int y){
return find(x)==find(y);
}
//kruskal
struct edge{
int u;
int v;
int cost;
};
bool comp(edge& e1,edge& e2){
return e1.cost < e2.cost;
}
edge es[2000];
int V,E;
int ans=0;
int kruskal(){
sort(es,es+E,comp);
init(V);
int res = 0;
for(int i=0;i<E;i++){
edge e = es[i];
if(!same(e.u,e.v)){
unite(e.u,e.v);
res+=e.cost;
ans++;
}
}
return res;
}
int main(int argc, const char * argv[])
{
//std::ios::sync_with_stdio(false);
//scanf("%s",S);
//scanf("%d",&N);
//sscanf(tmp.c_str(),"%dd%d%d",&time[i], &dice[i], &z[i]);
//getline(cin, target);
//cin >> x >> y;
//テスト用
//ifstream ifs( "1_06.txt" );
//ifs >> a;
//ここから
long long Y,M;
cin >> Y >> M;
if(Y==2013){
cout << Y << " " << M << endl;
return 0;
}
//2013/1からの総月数
long long soutuki=(Y-2013)*12+M;
//ある年xの総月数
long long xx=0;
long long xmax=1000000000;
long long xmin=0;
int i=0;
while(i<100){
long long x=(xmax+xmin)/2;
long long month=(x)-2012;
if(month <0){
xmin=x;
continue;
}
long long yobun=(1+month)*month;
yobun=yobun >> 1;
xx=month*12+yobun;
//cout << xx << endl;
if(xx>soutuki){
xmax=x;
}else{
xmin=x;
}
i++;
}
while(1){
long long month=(xmin)-2012;
int f=0;
for(int i=0;i<=month || i<=12;i++){
long long yobun=(1+month)*(month);
yobun = yobun >> 1;
if(soutuki==(xmin-2012)*12+yobun+i){
if(i==0){
cout << xmin << " " << 13 << endl;
f=1;
break;
}
cout << xmin+1 << " " << i << endl;
f=1;
break;
}
}
if(f==1){
break;
}
xmin++;
}
//ここまで
//cout << "ans" << endl;改行含む
//printf("%.0f\n",ans);//小数点以下表示なし
//printf("%.7f\n",p);
//printf("%f\n",pow(2,ans.size()));
return 0;
}
Submission Info
Submission Time |
|
Task |
B - 13月 |
User |
ikeha |
Language |
C++14 (GCC 5.4.1) |
Score |
50 |
Code Size |
4756 Byte |
Status |
TLE |
Exec Time |
1055 ms |
Memory |
256 KB |
Judge Result
Set Name |
Small |
Large |
Score / Max Score |
50 / 50 |
0 / 50 |
Status |
|
|
Set Name |
Test Cases |
Small |
01-max-small, 01-random-small01, 01-random-small02, 01-random-small03, 01-random-small04, 01-random-small05, 01-random-small06, 01-random-small07, 01-random-small08, 01-random-small09, 01-random-small10, 01-random-small11, 01-random-small12, 01-random-small13, 01-random-small14, 01-random-small15, 00-sample1, 00-sample2, 00-sample3 |
Large |
00-sample1, 00-sample2, 00-sample3, 01-max-small, 01-random-small01, 01-random-small02, 01-random-small03, 01-random-small04, 01-random-small05, 01-random-small06, 01-random-small07, 01-random-small08, 01-random-small09, 01-random-small10, 01-random-small11, 01-random-small12, 01-random-small13, 01-random-small14, 01-random-small15, 10-max-large, 11-random-large01, 11-random-large02, 11-random-large03, 11-random-large04, 11-random-large05, 11-random-large06, 11-random-large07, 11-random-large08, 11-random-large09, 11-random-large10, 11-random-large11, 11-random-large12, 11-random-large13, 11-random-large14, 11-random-large15 |
Case Name |
Status |
Exec Time |
Memory |
00-sample1 |
AC |
1 ms |
256 KB |
00-sample2 |
AC |
1 ms |
256 KB |
00-sample3 |
AC |
1 ms |
256 KB |
01-max-small |
AC |
1 ms |
256 KB |
01-random-small01 |
AC |
1 ms |
256 KB |
01-random-small02 |
AC |
1 ms |
256 KB |
01-random-small03 |
AC |
1 ms |
256 KB |
01-random-small04 |
AC |
1 ms |
256 KB |
01-random-small05 |
AC |
1 ms |
256 KB |
01-random-small06 |
AC |
1 ms |
256 KB |
01-random-small07 |
AC |
1 ms |
256 KB |
01-random-small08 |
AC |
1 ms |
256 KB |
01-random-small09 |
AC |
1 ms |
256 KB |
01-random-small10 |
AC |
1 ms |
256 KB |
01-random-small11 |
AC |
1 ms |
256 KB |
01-random-small12 |
AC |
1 ms |
256 KB |
01-random-small13 |
AC |
1 ms |
256 KB |
01-random-small14 |
AC |
1 ms |
256 KB |
01-random-small15 |
AC |
1 ms |
256 KB |
10-max-large |
AC |
54 ms |
256 KB |
11-random-large01 |
AC |
92 ms |
256 KB |
11-random-large02 |
AC |
186 ms |
256 KB |
11-random-large03 |
AC |
476 ms |
256 KB |
11-random-large04 |
AC |
1 ms |
256 KB |
11-random-large05 |
AC |
11 ms |
256 KB |
11-random-large06 |
AC |
6 ms |
256 KB |
11-random-large07 |
AC |
747 ms |
256 KB |
11-random-large08 |
TLE |
1055 ms |
256 KB |
11-random-large09 |
TLE |
1055 ms |
256 KB |
11-random-large10 |
AC |
1 ms |
256 KB |
11-random-large11 |
AC |
113 ms |
256 KB |
11-random-large12 |
TLE |
1055 ms |
256 KB |
11-random-large13 |
TLE |
1055 ms |
256 KB |
11-random-large14 |
AC |
3 ms |
256 KB |
11-random-large15 |
AC |
2 ms |
256 KB |