#include<bits/stdc++.h> #define int long long using namespace std; const int inf=1e13; int n; int big[310]; int pref[310]; int base[310]; vector<int> ans; void gen_base(){ for(int i=1;i<=n;i++){ int best=inf; for(int j=1;j<=i;j++){ int before=pref[i-1]-pref[i-j]; best=min(best,big[j]-before); } base[i]=best; pref[i]=pref[i-1]+best; } } int32_t main(){ cin >>n; for(int i=1;i<=n;i++){ cin >>big[i]; } gen_base(); for(int i=1;i<=n;i++){ if(pref[i]<big[i]){ cout <<"NIE"; return 0; } } cout <<"TAK\n" <<n <<"\n"; for(int i=1;i<=n;i++){ cout <<base[i] <<" "; } }
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | #include<bits/stdc++.h> #define int long long using namespace std; const int inf=1e13; int n; int big[310]; int pref[310]; int base[310]; vector<int> ans; void gen_base(){ for(int i=1;i<=n;i++){ int best=inf; for(int j=1;j<=i;j++){ int before=pref[i-1]-pref[i-j]; best=min(best,big[j]-before); } base[i]=best; pref[i]=pref[i-1]+best; } } int32_t main(){ cin >>n; for(int i=1;i<=n;i++){ cin >>big[i]; } gen_base(); for(int i=1;i<=n;i++){ if(pref[i]<big[i]){ cout <<"NIE"; return 0; } } cout <<"TAK\n" <<n <<"\n"; for(int i=1;i<=n;i++){ cout <<base[i] <<" "; } } |