제출 #1253260

#제출 시각아이디문제언어결과실행 시간메모리
1253260daniel920712Triple Peaks (IOI25_triples)C++20
18 / 100
43 ms2632 KiB
#include "triples.h" #include <map> #include <set> using namespace std; map < int , int > con; set < int > can; vector < int > tt; int N; int check(int a, int b,int c,int x,int y,int z) { return a==x&&b==y&&c==z; } int check2(int a,int b,int c) { if(c<a||c<b||c>=N) return 0; int x=tt[a]; int y=tt[b]; int z=tt[c]; if(x>y) swap(x,y); if(y>z) swap(y,z); if(x>y) swap(x,y); return check(min(b-a,c-b),max(b-a,c-b),c-a,x,y,z); } long long count_triples(std::vector<int> H) { long long ans=0; int i,j; N=H.size(); tt=H; if(N<=5000) { for(i=0;i<N;i++) { for(j=i+1;j<N;j++) { can.clear(); if(check2(i,j,i+tt[i])) can.insert(i+tt[i]); if(check2(i,j,i+tt[j])) can.insert(i+tt[j]); if(check2(i,j,j+tt[i])) can.insert(j+tt[i]); if(check2(i,j,j+tt[j])) can.insert(j+tt[j]); ans+=(long long) can.size(); } } } return ans; } std::vector<int> construct_range(int M, int K) { return {1, 1, 1}; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...