제출 #1092421

#제출 시각아이디문제언어결과실행 시간메모리
1092421modwwe구경하기 (JOI13_watching)C++17
100 / 100
350 ms31836 KiB
#pragma GCC optimize("Ofast,unroll-loops") #include<bits/stdc++.h> #define int long long //#define ll long long #define down cout<<'\n'; #define debug cout<<" cucuucucuuu",down #define NHP ios_base::sync_with_stdio(0);cout.tie(0);cin.tie(0); #define modwwe int t;cin>>t; while(t--) #define bit(i,j) (i>>j&1) #define sobit(a) __builtin_popcountll(a) #define task "test" #define fin(x) freopen(x".inp","r",stdin) #define fou(x) freopen(x".out","w",stdout) #define pb push_back #define checktime cerr << (double)clock() / CLOCKS_PER_SEC * 1000 << " ms"; using namespace std; #define getchar_unlocked getchar inline int scan() { char c = getchar_unlocked(); int x = 0; while (c < '0' || c > '9') { c = getchar_unlocked(); } while (c >= '0' && c <= '9') { x = (x << 1) + (x << 3) + c - '0'; c = getchar_unlocked(); } return x; } void phongbeo(); const int inf = 1e18; const int mod2 = 1e9 + 9; const int mod1 = 998244353; struct icd { long double a; int b; }; struct ib { int a; int b; }; struct ic { int a, b, c; }; struct id { int a, b, c, d; }; struct ie { int a, b, c, d, e; }; int n, m, s1, s2, s4, s3, sf, k, s5, s6, mx, s7, s8, s9, mx2, res, dem2 = 0, dem = 0, s33, dem3, dem4, l, r, mid, l2, r2, center; int i, s10, s12,k1,k2,s11; int kk; int el = 19; main() { // fin(task); //fou(task); NHP /// cin>>s1; ///modwwe phongbeo(); // checktime } vector<int> a; int dp[2007][2007]; bool check(int x) { for(int i=0; i<=n+1; i++) for(int j=0; j<=k1; j++) dp[i][j]=k2+1; dp[1][0]=0; for(int i=1; i<=n; i++) for(int j=0; j<=k1; j++) { if(dp[i][j]==k2+1) continue; s3=a[i]+x; s3=lower_bound(a.begin(),a.end(),s3)-a.begin(); dp[s3][j+1]=min(dp[i][j],dp[s3][j+1]); s3=a[i]+2*x; s3=lower_bound(a.begin(),a.end(),s3)-a.begin(); dp[s3][j]=min(dp[s3][j],dp[i][j]+1); } for(int j=0; j<=k1; j++) if(dp[n+1][j]<=k2) return 1; return 0; } void phongbeo() { cin>>n>>k1>>k2; k1=min(k1,n); k2=min(k2,n); a.resize(n+2); if(k1+k2>=n) {cout<<1; exit(0);} for(int i=1; i<=n; i++) cin>>a[i]; sort(a.begin(),a.end()); a.erase(unique(a.begin(), a.end()),a.end()); n=a.size()-1; a.pb(1e14); l=1; r=1e9; while(l<=r) { int mid=l+r>>1; if(check(mid))r=mid-1; else l=mid+1; } cout<<r+1; }

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

watching.cpp:67:1: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
   67 | main()
      | ^~~~
watching.cpp: In function 'void phongbeo()':
watching.cpp:119:18: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
  119 |         int mid=l+r>>1;
      |                 ~^~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...