제출 #1283977

#제출 시각아이디문제언어결과실행 시간메모리
1283977Luvidi3개의 봉우리 (IOI25_triples)C++20
47.43 / 100
2095 ms37268 KiB
#include "triples.h" #include <bits/stdc++.h> using namespace std; #define ll long long #define pii pair<int,int> #define pb push_back long long count_triples(std::vector<int> a) { ll ans=0; int n=a.size(); for(int i=0;i<n;i++){ vector<pii> v; if(i+a[i]<n){ int r=i+a[i]; if(i-a[r]>=0){ int l=i-a[r]; if(a[l]==r-l)v.pb({l,r}); } if(r-a[r]<i&&r-a[r]>=0){ int l=r-a[r]; if(a[l]==i-l)v.pb({l,r}); } } if(i-a[i]>=0){ int l=i-a[i]; if(i+a[l]<n){ int r=i+a[l]; if(a[r]==r-l)v.pb({l,r}); } if(l+a[l]>i&&l+a[l]<n){ int r=l+a[l]; if(a[r]==r-i)v.pb({l,r}); } } sort(v.begin(),v.end()); v.erase(unique(v.begin(),v.end()),v.end()); ans+=v.size(); 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; } } // for(int i=0;i<n;i++){ // for(int j=i+1;j<n;j++){ // for(int k=j+1;k<n;k++){ // multiset<int> s1={a[i],a[j],a[k]},s2={j-i,k-i,k-j}; // ans+=s1==s2; // if(s1==s2)cout<<i<<' '<<j<<' '<<k<<'\n'; // } // } // } return ans; } mt19937 rng(0); int gr(int x){ return abs((int)rng())%x; } std::vector<int> construct_range(int n, int k) { vector<int> ans; ans.pb(1); for(int i=0;i<n-3;i++)ans.pb(min(i+1,n-3-i)); ans.pb(1); // cout<<count_triples(ans)<<'\n'; return ans; }
#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...