QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#325947 | #5674. Sum of Remainders | cry | AC ✓ | 0ms | 3856kb | C++20 | 2.0kb | 2024-02-12 05:17:05 | 2024-02-12 05:17:05 |
Judging History
answer
#pragma GCC optimize("O3,unroll-loops")
#include <bits/stdc++.h>
#ifndef LOCAL
#define debug(...) 0
#else
#include "C:\programmingfunnyxd\debug.cpp"
#endif
using namespace std;
using ll = long long;
const int MOD = 1e9 + 7;
const int INF = 1e9;
const ll INFLL = 1e18;
#define F first
#define S second
#define all(x) x.begin(), x.end()
#define rall(x) x.rbegin(), x.rend()
#define pb push_back
#define FOR(i,a,b) for(int i = (a); i < (b); ++i)
#define FORE(i,a,b) for(int i = (a); i <= (b); ++i)
#define ROF(i,a,b) for(int i = (a); i >= (b); --i)
#define trav(a,x) for(auto& a: x)
#define sz(x) (int)x.size()
#define make_unique(v) sort(all(v)); v.erase(unique(all(v)), v.end())
template<class T> using minpq = priority_queue<T, vector<T>, greater<T>>;
template<class T> bool ckmin(T& a, const T& b){return b<a?a=b,1:0;}
template<class T> bool ckmax(T& a, const T& b){return a<b?a=b,1:0;}
template<int D, typename T>struct vt : public vector<vt<D - 1, T>> { template<typename... Args>
vt(int n = 0, Args... args) : vector<vt<D - 1, T>>(n, vt<D - 1, T>(args...)) {}};
template<typename T> struct vt<1, T> : public vector<T> {
vt(int n = 0, const T& val = T()) : vector<T>(n, val) {}};
template<typename T> istream& operator>>(istream& in, vector<T>& a) {for(auto &x : a) in >> x; return in;};
template<typename T> ostream& operator<<(ostream& out, vector<T>& a) {for(auto &x : a) out << x << ' '; return out;};
void solve() {
int n; cin >> n;
vector<int> a(n);
for(int& i: a) cin >> i;
int N = a[0];
vector<int> exp;
FOR(i,1,n){
int cur_mod = a[i];
trav(j, exp){
cur_mod -= (i + 1) % j;
}
int expected_mod = (N - sz(exp)) * (i + 1);
debug(exp, cur_mod, expected_mod);
assert((expected_mod - cur_mod) % (i + 1) == 0);
FOR(j,0,(expected_mod - cur_mod) / (i + 1)){
exp.pb(i + 1);
}
}
cout << N;
trav(i, exp) cout << " " << i;
}
signed main() {
cin.tie(0) -> sync_with_stdio(0);
int t = 1;
//cin >> t;
for(int test = 1; test <= t; test++){
solve();
}
}
/* /\_/\
* (= ._.)
* / > \>
*/
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 0ms
memory: 3856kb
input:
16 4 6 10 12 6 8 12 14 18 10 3 5 9 11 5 7
output:
4 2 5 5 11
result:
ok single line: '4 2 5 5 11'
Test #2:
score: 0
Accepted
time: 0ms
memory: 3568kb
input:
20 3 6 6 9 12 6 2 5 5 8 11 5 8 4 4 7 10 4 7 10
output:
3 3 6 7
result:
ok single line: '3 3 6 7'
Test #3:
score: 0
Accepted
time: 0ms
memory: 3512kb
input:
40 7 14 21 28 35 42 42 49 56 63 70 65 59 45 37 44 51 58 65 72 72 79 86 57 39 33 40 26 33 25 32 39 46 53 53 48 55 62 56 63
output:
7 7 12 13 14 15 24 25
result:
ok single line: '7 7 12 13 14 15 24 25'
Test #4:
score: 0
Accepted
time: 0ms
memory: 3624kb
input:
60 7 14 21 28 35 42 49 56 63 70 77 72 79 86 93 100 90 97 85 92 99 106 113 108 115 122 102 109 116 123 99 106 113 103 110 105 112 100 107 114 121 86 93 56 63 70 77 72 79 86 76 83 90 70 77 84 72 79 86 81
output:
7 12 17 19 27 31 42 44
result:
ok single line: '7 12 17 19 27 31 42 44'
Test #5:
score: 0
Accepted
time: 0ms
memory: 3568kb
input:
20 1 2 3 4 5 6 7 8 0 1 2 3 4 5 6 7 8 0 1 2
output:
1 9
result:
ok single line: '1 9'
Test #6:
score: 0
Accepted
time: 0ms
memory: 3504kb
input:
30 2 4 6 8 10 12 14 16 18 20 11 13 2 4 6 8 10 12 14 16 18 9 11 13 15 4 6 8 10 12
output:
2 11 13
result:
ok single line: '2 11 13'
Test #7:
score: 0
Accepted
time: 0ms
memory: 3824kb
input:
40 9 18 24 33 42 42 51 60 66 65 74 74 70 79 70 47 56 56 46 45 51 60 69 45 54 50 56 65 74 49 58 35 41 50 59 59 68 58 51 50
output:
9 3 6 10 13 15 16 16 19 24
result:
ok single line: '9 3 6 10 13 15 16 16 19 24'
Test #8:
score: 0
Accepted
time: 0ms
memory: 3824kb
input:
60 7 14 21 28 35 42 49 48 55 62 69 76 83 76 83 82 89 96 103 110 117 124 131 130 137 144 151 144 151 158 165 164 171 144 151 158 165 172 179 138 145 138 145 108 70 77 84 83 90 47 54 61 68 75 82 67 74 81 88 95
output:
7 8 14 34 40 44 45 50
result:
ok single line: '7 8 14 34 40 44 45 50'
Test #9:
score: 0
Accepted
time: 0ms
memory: 3596kb
input:
70 3 6 9 12 15 18 21 24 27 30 33 36 39 42 45 48 51 54 57 60 63 66 69 72 75 78 81 84 87 60 63 66 69 72 75 78 81 84 87 90 93 96 99 102 60 63 66 69 72 75 78 81 84 33 36 39 42 45 48 21 24 27 30 33 36 39 42 45 48 51
output:
3 30 45 54
result:
ok single line: '3 30 45 54'
Test #10:
score: 0
Accepted
time: 0ms
memory: 3824kb
input:
30 5 10 15 16 21 20 25 26 31 26 31 26 31 36 41 42 30 29 15 6 11 16 21 16 21 26 31 32 37 26
output:
5 4 6 10 17 19
result:
ok single line: '5 4 6 10 17 19'