제출 #760563

#제출 시각아이디문제언어결과실행 시간메모리
760563HibaKhalilWatching (JOI13_watching)C++14
0 / 100
1075 ms340 KiB
#include <bits/stdc++.h> #define pb push_back #define vi vector<int> #define vii vector<pair<int,int>> #define pii pair<int,int> #define ppb pop_back() #define r(i,n) for(int i=0;i<n;i++) #define fi first #define se second using namespace std; /*int tx[4] = {0,0,1,-1}; int ty[4] = {1,-1,0,0}; char t[4] = {'R','L','D','U'}; */ int n,p,q; vector<int> v; bool process(int pos,int w, int np,int nq) { if(pos==n) return 1; if(np==p && nq==q) return 0; //w bool res1=0, res2=0; if(np<p) { int curr = w+v[pos]-1; int l=pos,r=n; while(l+1<r) { int mid = (l+r)/2; if(curr<v[mid]) r=mid; else l=mid; } res1 = process(r,w,np+1,nq); } //2w if(nq<q) { int curr = 2*w+v[pos]-1; int l=pos,r=n; while(l+1<r) { int mid = (l+r)/2; if(curr<v[mid]) r=mid; else l=mid; } res2 = process(r,w,np,nq+1); } return res1 || res2; } bool good(int w) { // cout<<w<<" "<<process(0,w,0,0)<<endl; return process(0,w,0,0); } int main() { ios::sync_with_stdio(false); cin.tie(); cout.tie(); scanf("%d %d %d",&n,&p,&q); r(i,n) { int ev; scanf("%d",&ev); v.pb(ev); } sort(v.begin(),v.end()); int l=0,r=(int)1e9; // r is true , l is false while(l+1<r) { int m = (l+r)/2; if(good(m)) { r=m; } else { l=m; } } printf("%d\n",r); return 0; }

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

watching.cpp: In function 'int main()':
watching.cpp:64:10: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   64 |     scanf("%d %d %d",&n,&p,&q);
      |     ~~~~~^~~~~~~~~~~~~~~~~~~~~
watching.cpp:68:14: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   68 |         scanf("%d",&ev);
      |         ~~~~~^~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...