제출 #378831

#제출 시각아이디문제언어결과실행 시간메모리
378831daniel920712Gift (IZhO18_nicegift)C++14
49 / 100
401 ms23584 KiB
#include <iostream> #include <stdio.h> #include <stdlib.h> #include <stack> #include <map> #include <vector> using namespace std; map < long long , stack < long long > > all; vector < vector < long long > > que; vector < long long > ttt; vector < pair < long long , long long > > tt2; long long F(long long a,long long b) { if(b==0) return a; return F(b,a%b); } int main() { //freopen("aa.txt","w+t",stdout); long long N,K,i,j,ans=0,x,y,a,b,t,xx,tt,now,con; scanf("%lld %lld",&N,&K); for(i=1;i<=N;i++) { scanf("%lld",&t); all[t].push(i); ans+=t; xx=t; } if(ans%K) printf("-1\n"); else if(ans<=100000) { while(!all.empty()) { ttt.clear(); tt2.clear(); for(i=0;i<K;i++) { if(all.empty()) { printf("-1\n"); return 0; } a=prev(all.end())->first; b=all[a].top(); all[a].pop(); if(all[a].empty()) all.erase(a); ttt.push_back(b); tt2.push_back(make_pair(a,b)); } que.push_back(ttt); for(auto i:tt2) if(i.first!=1) all[i.first-1].push(i.second); } printf("%lld\n",ans/K); for(auto i:que) { printf("1 "); for(auto j:i) printf("%lld ",j); printf("\n"); } } else { tt=K*N/F(K,N); //printf("%lld\n",tt); ans=(xx*N)/(tt); //printf("%lld\n",ans); con=xx*N/(ans*K); if(con*K>3000000) printf("-1\n"); else { printf("%lld\n",con); now=0; for(i=0;i<con;i++) { printf("%lld ",ans); for(j=0;j<K;j++) { printf("%lld ",now+1); now=(now+1)%N; } printf("\n"); } } } return 0; }

컴파일 시 표준 에러 (stderr) 메시지

nicegift.cpp: In function 'int main()':
nicegift.cpp:21:29: warning: unused variable 'x' [-Wunused-variable]
   21 |     long long N,K,i,j,ans=0,x,y,a,b,t,xx,tt,now,con;
      |                             ^
nicegift.cpp:21:31: warning: unused variable 'y' [-Wunused-variable]
   21 |     long long N,K,i,j,ans=0,x,y,a,b,t,xx,tt,now,con;
      |                               ^
nicegift.cpp:22:10: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   22 |     scanf("%lld %lld",&N,&K);
      |     ~~~~~^~~~~~~~~~~~~~~~~~~
nicegift.cpp:25:14: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   25 |         scanf("%lld",&t);
      |         ~~~~~^~~~~~~~~~~
#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...