제출 #1163087

#제출 시각아이디문제언어결과실행 시간메모리
1163087cnn008A Difficult(y) Choice (BOI21_books)C++20
0 / 100
0 ms576 KiB
#include <bits/stdc++.h> #include "books.h" using namespace std; // // --- Sample implementation for the task books --- // // To compile this program with the sample grader, place: // books.h books_sample.cpp sample_grader.cpp // in a single folder and run: // g++ books_sample.cpp sample_grader.cpp // in this folder. // void solve(int N, int K, long long A, int S) { // TODO implement this function vector <int> a(N+1,0); int s1=0,s2=0; for(int i=1; i<=K; i++) a[i]=skim(i),s1+=a[i]; for(int i=N; i>=N-K+1; i--) a[i]=skim(i),s2+=a[i]; if(s1>2*A || s2<A){ impossible(); return; } if(s1>=A){ vector <int> cur; for(int i=1; i<=K; i++) cur.push_back(i); answer(cur); return; } if(s2<=2*A){ vector <int> cur; for(int i=N-K+1; i<=N; i++) cur.push_back(i); answer(cur); return; } int s=s1,l=-1,r=-1; for(int i=K; i; i--){ s-=a[i]; s+=a[N-i+K]; if(s>=A and s<=A+A){ vector <int> cur; for(int j=1; j<i; j++) cur.push_back(j); for(int j=N-i+K; j<=N; j++) cur.push_back(j); answer(cur); return; } if(s>A+A){ l=i-1; r=N-i+K; } } assert(0); cerr<<l<<" "<<r<<endl; impossible(); }
#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...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...