제출 #556846

#제출 시각아이디문제언어결과실행 시간메모리
556846hibikiXylophone (JOI18_xylophone)C++11
100 / 100
104 ms1032 KiB
#include "xylophone.h" #include<bits/stdc++.h> using namespace std; #define PB push_back #define F first #define S second int arr[5050]; map<pair<int,int>,int> mp; void solve(int N) { arr[1]=0; arr[2]=mp[{1,2}]=query(1,2); for(int i=3;i<=N;i++) { int a1=mp[{i-2,i-1}]; int a2=mp[{i-1,i}]=query(i-1,i); int a3=mp[{i-2,i}]=query(i-2,i); if(a1+a2==a3) { if(arr[i-2]<arr[i-1]) arr[i]=arr[i-1]+a2; else arr[i]=arr[i-1]-a2; } else if(a1==a3) { if(arr[i-2]<arr[i-1]) arr[i]=arr[i-1]-a2; else arr[i]=arr[i-1]+a2; } else if(a2==a3) { if(arr[i-2]<arr[i-1]) arr[i]=arr[i-1]-a2; else arr[i]=arr[i-1]+a2; } } int mn=1e9; for(int i=1;i<=N;i++) mn=min(mn,arr[i]); for(int i=1;i<=N;i++) arr[i] = arr[i] - mn + 1; int idx_mn,idx_mx; for(int i=1;i<=N;i++) { if(arr[i]==1)idx_mn=i; if(arr[i]==N)idx_mx=i; } if(idx_mx<idx_mn) for(int i=1;i<=N;i++) arr[i] = N - arr[i] + 1; for(int i=1;i<=N;i++) answer(i,arr[i]); return ; }

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

xylophone.cpp: In function 'void solve(int)':
xylophone.cpp:58:2: warning: 'idx_mx' may be used uninitialized in this function [-Wmaybe-uninitialized]
   58 |  if(idx_mx<idx_mn)
      |  ^~
xylophone.cpp:58:2: warning: 'idx_mn' may be used uninitialized in this function [-Wmaybe-uninitialized]
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...