제출 #1176784

#제출 시각아이디문제언어결과실행 시간메모리
1176784LmaoLmaoCollecting Stamps 3 (JOI20_ho_t3)C++20
0 / 100
1 ms576 KiB
#include<bits/stdc++.h> #define fi first #define se second #define int long long using namespace std; using ll = long long; using ii = pair<int, int>; using aa = array<int,3>; const int N = 1e5; const int INF = 1e9; int dp[205][205][205][2]; int a[205]; int ti[205]; int n,l; int dist(int x,int y) { if(x<y) swap(x,y); return min(x-y,l-x+y); } int get(int x,int y) { if(x+y>n) return (x+y)%n; return x+y; } void solve(int i,int j,int k) { int t=get(i+1,j-2); int cur=get(i,1); int tmp=min(dp[cur][j-1][k][0]+dist(a[i],a[cur]),dp[cur][j-1][k][1]+dist(a[i],a[t])); if(dp[i][j][k][0]>ti[i] && tmp<=ti[i]) { dp[i][j][k+1][0]=tmp; } //cout << dp[i][j][k+1][0] << endl; dp[i][j][k][0]=min(dp[i][j][k][0],tmp); t=get(i,j-2); cur=get(i,j-1); tmp=min(dp[i][j-1][k][0]+dist(a[i],a[cur]),dp[i][j-1][k][1]+dist(a[t],a[cur])); if(dp[i][j][k][1]>ti[cur] && tmp<=ti[cur]) { dp[i][j][k+1][1]=tmp; } //cout << dp[i][j][k+1][1] << ' ' << tmp << end; dp[i][j][k][1]=min(dp[i][j][k][1],tmp); } signed main() { ios_base::sync_with_stdio(false); cin.tie(NULL); #ifndef ONLINE_JUDGE freopen("in.txt", "r", stdin); freopen("out.txt", "w", stdout); #endif cin >> n >> l; for(int i=1;i<=n;i++) { cin >> a[i]; } for(int i=1;i<=n;i++) { cin >> ti[i]; } for(int i=0;i<=n;i++) { for(int j=0;j<=n;j++) { for(int k=0;k<=n;k++) dp[i][j][k][0]=dp[i][j][k][1]=1e18; } } if(1) { bool x=(min(l-a[1],a[1])<=ti[1]); dp[1][1][x][0]=min(n-a[1],a[1]); dp[1][1][x][1]=min(n-a[1],a[1]); x=(min(l-a[n],a[n])<=ti[n]); dp[n][1][x][0]=min(l-a[n],a[n]); dp[n][1][x][1]=min(l-a[n],a[n]); } int ans=0; for(int j=2;j<=n;j++) { for(int i=1;i<=n;i++) { for(int k=j;k>=0;k--) { solve(i,j,k); } for(int k=0;k<=j;k++) { if(j==n && min(dp[i][j][k][0],dp[i][j][k][1])<1e18) { ans=max(ans,k); } } } } solve(5,2,1); cout << ans; return 0; }

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

ho_t3.cpp: In function 'int main()':
ho_t3.cpp:52:12: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   52 |     freopen("in.txt", "r", stdin);
      |     ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
ho_t3.cpp:53:12: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   53 |     freopen("out.txt", "w", stdout);
      |     ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...