Submission #343072

#TimeUsernameProblemLanguageResultExecution timeMemory
343072davesamanijJOIRIS (JOI16_joiris)C++17
100 / 100
1 ms492 KiB
#include<bits/stdc++.h> using namespace std; typedef long long ll; typedef long double ld; #define lc (v<<1) #define rc (lc|1) #define pll pair<ll, ll> #define ppll pair<int,pll> #define fr first #define sc second #define low lower_bound #define upp upper_bound #define pb push_back #define endl '\n'; #define mp make_pair const int mxn = 1e2; //const ll inf = 1e18; const int mod = 1e9+7; ll gcd(ll a, ll b){return !b?a:gcd(b,a%b);} ll lcm(ll a, ll b){return (a/gcd(a, b))*b;} ll pw(ll x, ll y) { ll r = 1; while (y) { if (y & 1) r = 1LL * r * x % mod; x = 1LL * x * x % mod; y >>= 1; } return r; } int n, k, a[mxn], b[mxn], c[mxn]; vector<pll>v; int main(){ cin >> n >> k; for(int i=0; i<n; i++){ cin >> a[i]; } for(int i=0; i<n; i++){ b[i%k] = (b[i%k] + a[i])%k; } //1 for(int i=0; i<n%k; i++){ if(b[i] != b[0]){ cout << -1 << endl; return 0; } } //2 for(int i=n%k; i<k; i++){ if(b[i] != b[k-1]){ cout << -1 << endl; return 0; } } for(int i=1; i<n; i++){ while(a[i] < a[i-1]){ a[i]+=k; v.pb(mp(1,i)); } } for(int i=1; i<n; i++){ for(int j=a[i-1]+1; j<=a[i]; j++){ for(int e=i-k; e>=0; e-=k)v.pb(mp(2,e)); if((i-1)%k != k-1){ for(int e=0; e<=(i-1)%k; e++){ c[e] ++; } } } } for(int i=0; i<k-1; i++){ while(c[i] > 0){ c[i]-=k; v.pb(mp(1,i)); } } for(int i=0; i>c[0]; i--){ for(int j=n-k; j>=0; j-=k){ v.pb(mp(2,j)); } } cout << v.size() << endl; for(auto q:v){ cout << q.fr << " " << q.sc + 1 << endl; } return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...