Submission #1283936

#TimeUsernameProblemLanguageResultExecution timeMemory
1283936LuvidiTriple Peaks (IOI25_triples)C++20
0 / 100
2094 ms1960 KiB
#include "triples.h" #include <bits/stdc++.h> using namespace std; #define ll long long long long count_triples(std::vector<int> a) { ll ans=0; int n=a.size(); for(int i=0;i<n;i++){ if(i+a[i]<n){ int r=i+a[i]; if(i-a[r]>=0){ int l=i-a[r]; ans+=a[l]==r-l; } if(r-a[r]<i&&r-a[r]>=0){ int l=r-a[r]; ans+=a[l]==i-l; } } if(i-a[i]>=0){ int l=i-a[i]; if(i+a[l]<n){ int r=i+a[l]; ans+=a[r]==r-l; } if(l+a[l]>i&&l+a[l]<n){ int r=l+a[l]; ans+=a[r]==r-i; } } for(int j=max(1,i+a[i]-n+1);j<min(a[i],i+1);j++){ ans+=a[i-j]==j&&a[i+a[i]-j]==a[i]-j||a[i-j]==a[i]-j&&a[i+a[i]-j]==j; } } 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...