Submission #1678899
Source Code Expand
// tzl ak IOI!
#include<bits/stdc++.h>
#define HEAP priority_queue
#define rep(i, n) for(int i = 0; i < (n); ++i)
#define per(i, n) for(int i = (n) - 1; i >= 0 ; --i)
#define forn(i, l, r) for(int i = (l); i <= (r); ++i)
#define nrof(i, r, l) for(int i = (r); i >= (l); --i)
#define FOR(a, b) for(auto (a): (b))
#define mp make_pair
#define mt make_tuple
#define pb push_back
#define X first
#define Y second
#define eps 1e-6
#define pi 3.1415926535897932384626433832795
#define SZ(x) (int)x.size()
#define ALL(x) x.begin(), x.end()
#define FILL(a, b) memset((a), (b), sizeof((a)))
#define MCPY(a, b) memcpy((a), (b), sizeof((b)))
using namespace std;
typedef long long LL;
typedef double flt;
typedef vector<int> vi;
typedef vector<LL> vl;
typedef pair<int,int> pii;
typedef pair<int,LL> pil;
typedef pair<LL,int> pli;
typedef pair<LL,LL> pll;
typedef vector<pil> vil;
typedef vector<pii> vii;
typedef vector<pli> vli;
typedef vector<pll> vll;
const int iinf = 1e9 + 7;
const LL linf = 1ll << 60;
const flt dinf = 1e60;
template <typename T>
inline void scf(T &x)
{
bool f = 0; x = 0; char c = getchar();
while((c < '0' || c > '9') && c != '-') c = getchar();
if(c == '-') { f = 1; c = getchar(); }
while(c >= '0' && c <= '9') { x = x * 10 + c - '0'; c = getchar(); }
if(f) x = -x; return;
}
template <typename T1, typename T2>
void scf(T1 &x, T2 &y) { scf(x); return scf(y); }
template <typename T1, typename T2, typename T3>
void scf(T1 &x, T2 &y, T3 &z) { scf(x); scf(y); return scf(z); }
template <typename T1, typename T2, typename T3, typename T4>
void scf(T1 &x, T2 &y, T3 &z, T4 &w) { scf(x); scf(y); scf(z); return scf(w); }
inline char mygetchar(){ char c = getchar(); while(c == ' ' || c == '\n') c = getchar(); return c; }
template <typename T>
void chkmax(T &x, const T &y){ if(y > x) x = y; return; }
template <typename T>
void chkmin(T &x, const T &y){ if(y < x) x = y; return; }
#ifdef ONLINE_JUDGE
#define debug(x,c) ;
#else
#define DEBUG
#define debug(x,c) cerr<<#x<<"="<<x<<c;
#endif
//---------------------------head----------------------------
const int N = 5e5 + 100;
struct huge_int
{
deque<int> num;
void in()
{
char c = getchar();
while(c < '0' || c > '9') c = getchar();
while(c >= '0' && c <= '9') num.push_front(c - '0'), c = getchar();
return;
}
huge_int operator +(const huge_int &a) const
{
huge_int b; b.num = num;
while(SZ(b.num) < SZ(a.num)) b.num.pb(0); b.num.pb(0);
rep(i, SZ(a.num)) b.num[i] += a.num[i];
rep(i, SZ(b.num)) if(b.num[i] > 9) b.num[i] -= 10, b.num[i + 1]++;
if(!b.num.back()) b.num.pop_back();
return b;
}
int sum()
{
int ret = 0;
for(auto x: num) ret += x;
return ret;
}
void out()
{
per(i, SZ(num)) cout<<num[i]; cout<<endl;
}
}a, b;
void TZL()
{
a.in(); b = a;
rep(i, 8) a = a + b;
}
bool check(int k)
{
b.num.clear();
int x = 9 * k;
while(x) b.num.pb(x % 10), x /= 10;
b = a + b;
return b.sum() <= 9 * k;
}
void RANK1()
{
int lb = 0, rb = a.sum();
while(lb <= rb)
{
int mid = lb + rb >> 1;
if(check(mid)) rb = mid - 1;
else lb = mid + 1;
}
printf("%d\n", lb);
return;
}
#define tzl int
#define ak main
#define IOI ()
tzl ak IOI
{
#undef tzl
#undef ak
#undef IOI
TZL();
RANK1();
#define tzl return
#define caisi 0
#define myy ;
tzl caisi myy
#undef tzl
#undef caisi
#undef myy
}
Submission Info
Submission Time |
|
Task |
E - Increasing Numbers |
User |
OMTWOCZWEIXVI |
Language |
C++14 (GCC 5.4.1) |
Score |
1300 |
Code Size |
3515 Byte |
Status |
AC |
Exec Time |
116 ms |
Memory |
6408 KB |
Judge Result
Set Name |
Sample |
All |
Score / Max Score |
0 / 0 |
1300 / 1300 |
Status |
|
|
Set Name |
Test Cases |
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 |
Case Name |
Status |
Exec Time |
Memory |
in1.txt |
AC |
3 ms |
384 KB |
in10.txt |
AC |
91 ms |
6408 KB |
in11.txt |
AC |
116 ms |
6400 KB |
in12.txt |
AC |
113 ms |
6400 KB |
in13.txt |
AC |
94 ms |
6400 KB |
in14.txt |
AC |
95 ms |
6400 KB |
in15.txt |
AC |
91 ms |
6400 KB |
in16.txt |
AC |
91 ms |
6400 KB |
in17.txt |
AC |
64 ms |
6144 KB |
in18.txt |
AC |
103 ms |
6400 KB |
in19.txt |
AC |
99 ms |
6292 KB |
in2.txt |
AC |
102 ms |
6400 KB |
in20.txt |
AC |
71 ms |
6404 KB |
in21.txt |
AC |
102 ms |
6400 KB |
in22.txt |
AC |
102 ms |
6400 KB |
in23.txt |
AC |
102 ms |
6400 KB |
in24.txt |
AC |
81 ms |
6400 KB |
in25.txt |
AC |
82 ms |
6408 KB |
in26.txt |
AC |
99 ms |
6272 KB |
in27.txt |
AC |
71 ms |
4608 KB |
in28.txt |
AC |
102 ms |
6408 KB |
in29.txt |
AC |
102 ms |
6404 KB |
in3.txt |
AC |
102 ms |
6408 KB |
in30.txt |
AC |
102 ms |
6404 KB |
in31.txt |
AC |
102 ms |
6400 KB |
in4.txt |
AC |
102 ms |
6404 KB |
in5.txt |
AC |
65 ms |
6404 KB |
in500000.txt |
AC |
45 ms |
6400 KB |
in6.txt |
AC |
104 ms |
6404 KB |
in7.txt |
AC |
81 ms |
5192 KB |
in8.txt |
AC |
74 ms |
6308 KB |
in9.txt |
AC |
98 ms |
6400 KB |
sample1.txt |
AC |
1 ms |
256 KB |
sample2.txt |
AC |
1 ms |
256 KB |
sample3.txt |
AC |
1 ms |
256 KB |
sample4.txt |
AC |
1 ms |
256 KB |