Submission #1230987

#TimeUsernameProblemLanguageResultExecution timeMemory
1230987yixuan19Xylophone (JOI18_xylophone)C++20
100 / 100
26 ms472 KiB
#include <bits/stdc++.h> #include "xylophone.h" static int A[5000]; using namespace std; void solve(int N) { vector<int> doubles; vector<int> triples; vector<int> dir; vector<int> sol; dir.push_back(1); sol.push_back(0); for(int i = 1; i < N; ++i){ doubles.push_back(query(i,i+1)); } for(int i = 1; i < N-1; ++i){ triples.push_back(query(i,i+2)); } for (int i = 0; i < N-2; ++i){ if (doubles[i] + doubles[i+1] == triples[i]){ dir.push_back(dir[dir.size()-1]); }else{ dir.push_back(-dir[dir.size()-1]); } } for (int i = 0; i < N-1; ++i){ sol.push_back(sol[sol.size()-1] + dir[i]*doubles[i]); } int min_index, mini, max_index, maxi; mini = 1e9; maxi = -1e8; for (int i = 0; i < N; ++i){ if (sol[i] < mini){ mini = sol[i]; min_index = i; } if (sol[i]> maxi){ maxi = sol[i]; max_index = i; } } if (max_index < min_index){ for (int i = 0; i < N; ++i){ sol[i] = -sol[i]; } } mini = 1e9; for (int i = 0; i < N; ++i){ if (sol[i] < mini){ mini = sol[i]; min_index = i; } } int decalage = abs(mini-1); // for (int i: sol){ // cout<<i<<endl; // } for (int i = 0; i < N; ++i){ answer(i+1,sol[i] + decalage); } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...