#include "xylophone.h"
#include <iostream>
#include <vector>
#include <string>
#include <algorithm>
#include <cmath>
#include <map>
#include <set>
#include <queue>
#include <stack>
#include <unordered_map>
#include <unordered_set>
#include <bitset>
#include <numeric>
#include <functional>
#include <iomanip>
#include <sstream>
#include <numeric>
using namespace std;
//static int A[5000];
void solve(int n){
vector<int> cevap(n+1,0);
vector<int> cevap1(n+1,0);
cevap1[1]=0;
cevap[1]=0;
int f=query(1,2);
cevap[2]=f;
cevap1[2]=-f;
for(int i=3;i<=n;i++){
int v1=query(i-1,i);
int v2=query(i-2,i);
if(v1==v2){
if(cevap[i-2]>cevap[i-1]){
cevap[i]=cevap[i-1]+v2;
}
else{
cevap[i]=cevap[i-1]-v2;
}
if(cevap1[i-2]>cevap1[i-1]){
cevap1[i]=cevap1[i-1]+v2;
}
else{
cevap1[i]=cevap1[i-1]-v2;
}
}
else{
if(cevap[i-2]-cevap[i-1]==v2){
cevap[i]=cevap[i-1]+v1;
}
else if(cevap[i-1]-cevap[i-2]==v2){
cevap[i]=cevap[i-1]-v1;
}
else{
if(cevap[i-2]>cevap[i-1]){
cevap[i]=cevap[i-1]-v1;
}
else{
cevap[i]=cevap[i-1]+v1;
}
}
if(cevap1[i-2]-cevap1[i-1]==v2){
cevap1[i]=cevap1[i-1]+v1;
}
else if(cevap1[i-1]-cevap1[i-2]==v2){
cevap1[i]=cevap1[i-1]-v1;
}
else{
if(cevap1[i-2]>cevap1[i-1]){
cevap1[i]=cevap1[i-1]-v1;
}
else{
cevap1[i]=cevap1[i-1]+v1;
}
}
}
}
int ma=1;
int ma1=1;
for(int i=2;i<=n;i++){
if(cevap[ma]<cevap[i]){
ma=i;
}
if(cevap1[ma1]<cevap1[i]){
ma1=i;
}
}
ma=n-cevap[ma];
ma1=n-cevap1[ma1];
for(int i=1;i<=n;i++){
cevap[i]+=ma;
cevap1[i]+=ma1;
}
int kontrol=0;
for(int i=1;i<=n;i++){
if(cevap[i]==n){
kontrol=1;
break;
}
if(cevap[i]==1){
kontrol=0;
break;
}
}
if(kontrol==0){
for(int i=1;i<=n;i++){
answer(i,cevap[i]);
}
}
else{
for(int i=1;i<=n;i++){
answer(i ,cevap1[i]);
}
}
}
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |