Submission #689741

#TimeUsernameProblemLanguageResultExecution timeMemory
689741alexddDEL13 (info1cup18_del13)C++17
30 / 100
196 ms1876 KiB
#include<bits/stdc++.h> using namespace std; #define int long long int n,q; int v[100005]; int gap[100005]; vector<int> sol; vector<int> sol2; signed main() { ios_base::sync_with_stdio(0);cin.tie(0); int t; cin>>t; while(t--) { sol.clear(); sol2.clear(); cin>>n>>q; for(int i=1;i<=q;i++) { cin>>v[i]; gap[i-1]=v[i]-v[i-1]-1; } gap[q] = n - v[q]; q++; v[q] = n+1; bool impossible=0; while(1) { bool bl=0; for(int i=1;i<q;i++) { if(impossible) break; if(gap[i-1]==0 || gap[i]==0) continue; if(gap[i-1]%2==1)///daca trebuie sa scad 1 { sol.push_back(v[i]); gap[i]--; gap[i-1]--; bl=1; } else if(gap[i-1]==v[i]-v[i-1]-1)///daca trebuie sa scad 2 { sol.push_back(v[i]); sol.push_back(v[i]); gap[i]-=2; gap[i-1]-=2; bl=1; } } for(int i=q-1;i>0;i--) { if(impossible) break; if(gap[i-1]==0 || gap[i]==0) continue; if(gap[i]%2==1)///daca trebuie sa scad 1 { sol.push_back(v[i]); gap[i]--; gap[i-1]--; bl=1; } else if(gap[i]==v[i+1]-v[i]-1)///daca trebuie sa scad 2 { sol.push_back(v[i]); sol.push_back(v[i]); gap[i]-=2; gap[i-1]-=2; bl=1; } } if(!bl) break; } if(!impossible) { for(int i=0;i<q;i++) { if(gap[i]==0) continue; if(gap[i]<0 || gap[i]%2==1 || gap[i]==v[i+1]-v[i]-1) { impossible=1; break; } int mij=(v[i+1]+v[i])/2; while(gap[i]>0) { sol2.push_back(mij); gap[i]-=2; } } } if(impossible) { cout<<-1<<"\n"; continue; } cout<<sol.size() + sol2.size()<<"\n"; for(int i=0;i<sol2.size();i++) cout<<sol2[i]<<" "; for(int i=0;i<sol.size();i++) cout<<sol[i]<<" "; cout<<"\n"; } return 0; }

Compilation message (stderr)

del13.cpp: In function 'int main()':
del13.cpp:104:22: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
  104 |         for(int i=0;i<sol2.size();i++)
      |                     ~^~~~~~~~~~~~
del13.cpp:106:22: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
  106 |         for(int i=0;i<sol.size();i++)
      |                     ~^~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...