QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#149529 | #6138. Function and Function | pooty# | AC ✓ | 37ms | 3744kb | C++14 | 1.0kb | 2023-08-24 19:48:33 | 2023-08-24 19:48:36 |
Judging History
answer
#include <bits/stdc++.h>
using namespace std;
#define int long long
#define REP(i, n) for (int i = 0; i < (n); i++)
typedef vector<int> vi;
typedef vector<vi> vvi;
vi mp = {1,0,0,0,1,0,1,0,2,1};
int getnext(int v) {
int tot =0;
for (auto c: to_string(v)) {
tot += mp[c - '0'];
}
return tot;
}
int solve() {
int x,k;cin>>x>>k;
map<int,int> seen;
vi carr;
int cur = x;
int curtime = 0;
while (true) {
if (curtime == k) {
return cur;
}
if (seen.find(cur) != seen.end()) {
int idx = seen[cur];
int diff = curtime - idx;
int rem = (k - idx)%diff;
return carr[idx + rem];
} else {
seen[cur] = curtime;
carr.push_back(cur);
curtime++;
cur = getnext(cur);
}
}
}
signed main() {
ios_base::sync_with_stdio(false);
cin.tie(NULL);
int tc;cin>>tc;
REP(i, tc) {
cout<<solve()<<"\n";
}
}
详细
Test #1:
score: 100
Accepted
time: 1ms
memory: 3744kb
input:
6 123456789 1 888888888 1 888888888 2 888888888 999999999 98640 12345 1000000000 0
output:
5 18 2 0 0 1000000000
result:
ok 6 numbers
Test #2:
score: 0
Accepted
time: 37ms
memory: 3736kb
input:
100000 579268184 2 120252252 777743676 255650198 1 152055433 207664522 137430584 754115403 646417467 164848484 743551976 0 0 408695577 363072674 569574204 464290891 0 761830281 3 0 1 49176280 2 791182580 0 474930784 3 402374924 0 739903247 91553857 0 2 688106229 2 65907033 152261569 875191599 3 5319...
output:
0 0 5 0 1 1 743551976 1 1 464290891 0 1 1 791182580 1 402374924 0 0 2 0 1 1 2 1 0 0 0 3 0 0 0 1 0 0 1 0 2 0 1 1 1 0 1 0 0 0 0 0 0 1 55349255 486354015 1 1 0 1 1 0 1 1 0 1 0 9 0 1 1 0 0 1 0 1 1 1 0 0 0 0 25600152 0 0 1 22903397 705086250 771453912 1 1 0 0 1 0 1 1 1 2 1 1 1 1 1 1 6 3 3 1 0 1 0 1 86248...
result:
ok 100000 numbers