QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#747875 | #6138. Function and Function | tassei903# | AC ✓ | 43ms | 3620kb | C++20 | 1.0kb | 2024-11-14 18:33:50 | 2024-11-14 18:33:51 |
Judging History
answer
#include <bits/stdc++.h>
#define rep(i, l, r) for(int i = (int)l; i < (int)r; i++)
#define all(v) v.begin(), v.end()
#define sz(v) (int)v.size()
using namespace std;
using ll = long long;
using pll = pair<ll, ll>;
using pii = pair<int, int>;
using ld = long double;
typedef vector<ll> vl;
typedef vector<int> vi;
template<class T>
void out(const vector<T> &v) {
for (auto x: v)cout << x << " ";
cout << endl;
}
vector<int> f = {1, 0, 0, 0, 1, 0, 1, 0, 2, 1};
void solve() {
int n, k; cin >> n >> k;
auto dfs = [&](auto self, int n, int k)-> int{
if (k == 0) return n;
if (n == 0) return k % 2;
if (n == 1) return 1 - (k % 2);
int x = 0;
while(n > 0) {
x += f[n % 10];
n /= 10;
}
return self(self, x, k - 1);
};
cout << dfs(dfs, n, k) << endl;
}
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
int T; cin >> T;
while(T--) {
solve();
}
}
詳細信息
Test #1:
score: 100
Accepted
time: 1ms
memory: 3564kb
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: 43ms
memory: 3620kb
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