提出 #1160326
ソースコード 拡げる
#include <cstdio>
#include <algorithm>
#include <cmath>
#include <queue>
#include <vector>
#include <map>
#include <set>
using namespace std;
typedef long long LL;
typedef pair<int , int> P2;
typedef pair<pair<int , int> , int> P3;
typedef pair<pair<int , int> , pair<int , int> > P4;
#define Fst first
#define Snd second
#define PB(a) push_back(a)
#define MP(a , b) make_pair((a) , (b))
#define M3P(a , b , c) make_pair(make_pair((a) , (b)) , (c))
#define M4P(a , b , c , d) make_pair(make_pair((a) , (b)) , make_pair((c) , (d)))
#define repp(i,a,b) for(int i = (int)(a) ; i < (int)(b) ; ++i)
#define repm(i,a,b) for(int i = (int)(a) ; i > (int)(b) ; --i)
char s[500010];
int x[500010];
int d[500010];
int e[500010];
void change(int z){
if(d[z]>=0&&z!=d[z]){
++e[d[z]];
d[z+1] = d[z];
d[z] = -1;
}
if(e[z]>=0&&z!=e[z]){
--d[e[z]];
e[z-1] = e[z];
e[z] = -1;
}
if(x[z] == x[z+1]){
d[z] = d[z+1];
--e[d[z]];
d[z+1] = -1;
} else if(x[z] == x[z-1]){
e[z] = e[z-1];
++d[e[z]];
e[z-1] = -1;
} else {
d[z] = e[z] = z;
}
}
int main(){
scanf("%s" , s);
int n = 0;
for(; s[n] != 0 ; ++n){
x[n] = s[n] - '0';
}
x[n] = 99;
fill(d,d+n,-1);
fill(e,e+n,-1);
repp(i,0,n){
int h = i;
while(i < n && x[h] == x[i]) ++i;
--i;
d[h] = i;
e[i] = h;
}
int ans = 0;
int p = 0;
while(p < n){
int q = 0;
int r = p;
while(p < n && x[p] >= q){
if(q != x[p]) r = p;
p = d[p];
q = x[p];
++p;
}
++ans;
if(p == n) break;
if(e[p-1] != p-1){
d[e[p-1]] = -1;
++e[p-1];
d[e[p-1]] = p-1;
}
p = r + 1;
++x[n-1];
if(x[n-1] <= 9) change(n-1);
for(int i = n-1 ; x[i] > 9 ; --i){
x[i] -= 10;
x[i-1] += 1;
change(i);
if(x[i] <= 9) change(i-1);
}
}
printf("%d\n" , ans);
return 0;
}
提出情報
コンパイルエラー
./Main.cpp: In function ‘int main()’:
./Main.cpp:54:17: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
scanf("%s" , s);
^
ジャッジ結果
セット名 |
Sample |
All |
得点 / 配点 |
0 / 0 |
1300 / 1300 |
結果 |
|
|
セット名 |
テストケース |
Sample |
sample1.txt, sample2.txt, sample3.txt, sample4.txt |
All |
sample1.txt, sample2.txt, sample3.txt, sample4.txt, in1.txt, in10.txt, in11.txt, in12.txt, in13.txt, in14.txt, in15.txt, in16.txt, in17.txt, in18.txt, in19.txt, in2.txt, in20.txt, in21.txt, in22.txt, in23.txt, in24.txt, in25.txt, in26.txt, in27.txt, in28.txt, in29.txt, in3.txt, in30.txt, in31.txt, in4.txt, in5.txt, in500000.txt, in6.txt, in7.txt, in8.txt, in9.txt, sample1.txt, sample2.txt, sample3.txt, sample4.txt |
ケース名 |
結果 |
実行時間 |
メモリ |
in1.txt |
AC |
1 ms |
4352 KB |
in10.txt |
AC |
10 ms |
6528 KB |
in11.txt |
AC |
5 ms |
6528 KB |
in12.txt |
AC |
10 ms |
6528 KB |
in13.txt |
AC |
10 ms |
6528 KB |
in14.txt |
AC |
10 ms |
6528 KB |
in15.txt |
AC |
11 ms |
6528 KB |
in16.txt |
AC |
11 ms |
6528 KB |
in17.txt |
AC |
4 ms |
6400 KB |
in18.txt |
AC |
11 ms |
6528 KB |
in19.txt |
AC |
9 ms |
6400 KB |
in2.txt |
AC |
11 ms |
6528 KB |
in20.txt |
AC |
5 ms |
6528 KB |
in21.txt |
AC |
11 ms |
6528 KB |
in22.txt |
AC |
11 ms |
6528 KB |
in23.txt |
AC |
11 ms |
6528 KB |
in24.txt |
AC |
11 ms |
6528 KB |
in25.txt |
AC |
11 ms |
6528 KB |
in26.txt |
AC |
10 ms |
6400 KB |
in27.txt |
AC |
8 ms |
5760 KB |
in28.txt |
AC |
11 ms |
6528 KB |
in29.txt |
AC |
11 ms |
6528 KB |
in3.txt |
AC |
11 ms |
6528 KB |
in30.txt |
AC |
11 ms |
6528 KB |
in31.txt |
AC |
11 ms |
6528 KB |
in4.txt |
AC |
11 ms |
6528 KB |
in5.txt |
AC |
5 ms |
6528 KB |
in500000.txt |
AC |
5 ms |
6528 KB |
in6.txt |
AC |
11 ms |
6528 KB |
in7.txt |
AC |
7 ms |
6144 KB |
in8.txt |
AC |
5 ms |
6528 KB |
in9.txt |
AC |
11 ms |
6528 KB |
sample1.txt |
AC |
1 ms |
4224 KB |
sample2.txt |
AC |
1 ms |
4224 KB |
sample3.txt |
AC |
1 ms |
4224 KB |
sample4.txt |
AC |
1 ms |
4224 KB |