제출 #1159013

#제출 시각아이디문제언어결과실행 시간메모리
1159013thelegendary08Xylophone (JOI18_xylophone)C++17
0 / 100
0 ms416 KiB
#include "xylophone.h" #include<bits/stdc++.h> using namespace std; static int A[5000]; void solve(int N) { vector<int>v; for(int i = 1; i<N; i++){ v.push_back(query(i, i+1)); } vector<int>w; for(int i = 1; i<N-1; i++){ v.push_back(query(i, i+2)); } vector<int>sgn(N-1, 1); for(int i = 0; i<N-2; i++){ if(w[i] == v[i] + v[i+1])sgn[i+1] = sgn[i]; else sgn[i+1] = -sgn[i]; } vector<int> nums(N); for(int i = 1; i<N; i++){ if(sgn[i-1] == 1){ nums[i] = nums[i-1] + v[i]; } else nums[i] = nums[i-1] - v[i]; } int mxd = 0; int mx = -1; int mnd = 0; int mn = 1e9; for(int i = 0; i<N; i++){ if(v[i] < mn){ mn = v[i]; mnd = i; } if(v[i] > mx){ mx = v[i]; mxd = i; } } if(mnd > mxd){ for(int i = 0; i<N-1; i++)sgn[i] = -sgn[i]; } nums[0] = 0; for(int i = 1; i<N; i++){ if(sgn[i-1] == 1){ nums[i] = nums[i-1] + v[i]; } else nums[i] = nums[i-1] - v[i]; } mxd = 0; mx = -1; mnd = 0; mn = 1e9; for(int i = 0; i<N; i++){ if(v[i] < mn){ mn = v[i]; mnd = i; } if(v[i] > mx){ mx = v[i]; mxd = i; } } for(int i = 0; i<N; i++){ nums[i] -= mn; nums[i]++; } for(int i = 1; i <= N; i++) { answer(i, nums[i-1]); } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...