제출 #1256772

#제출 시각아이디문제언어결과실행 시간메모리
1256772ma_moutahid3개의 봉우리 (IOI25_triples)C++20
0 / 100
2092 ms1864 KiB
#include "triples.h" #include<bits/stdc++.h> using ll=long long; #define vi vector<int> #define vl vector<ll> using namespace std; ll count(vi &H){ int n=H.size(); ll result=0; for(int i=0;i<n;i++){ if(H[i]>i)continue; for(int j=i-H[i];j<i;j++){ if(H[j]>=H[i])continue; if(H[i]== i-j){ int k=j+H[j]; if(H[k]>H[j] && H[k]+H[j]==H[i] &&( H[k]==i-k || H[k]==k-j))result++; k=i-H[j]; if(H[k]>H[j] && H[k]+H[j]==H[i] &&( H[k]==i-k || H[k]==k-j))result++; continue; } int k=i-H[i]; if(H[k]>=H[j] && H[k]+H[j]==H[i] && (i-j==H[j] || i-j== H[k]) )result++; k=j+H[i]; if(k>=n)continue; if(H[k]>H[j] && H[k]+H[j]==H[i] && (i-j==H[j] || i-j== H[k]) )result++; } } return result; } long long count_triples(std::vector<int> H) { ll result=count(H); reverse(H.begin(),H.end()); result+=count(H); return result; } 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...