Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
123741 | 柯昊阳 | 选择客栈 | C++ | 解答错误 | 0 | 81 MS | 3008 KB | 786 | 2024-01-23 09:19:54 |
#include <bits/stdc++.h> using namespace std; struct node{ int cst; int no; }; vector<node> okcolr[55]; vector<node> nocolr[55]; int sum[200005]; int a[200005]; int main(){ int n,m,k; cin>>n>>m>>k; for(int i = 0;i<n;i++){ int x,y; cin>>x>>y; a[i] = y; if(y<=k){ if(i==0) a[i]++; else a[i] = a[i-1]+1; } if(y<=k)okcolr[x].push_back({y,i}); else nocolr[x].push_back({y,i}); } long long cnt = 0; for(int i = 0;i<m;i++){ cnt+=(okcolr[i].size()-1)*okcolr[i].size()/2; } for(int i = 0;i<m;i++){ cnt+=okcolr[i].size()*nocolr[i].size(); } for(int i = 0;i<m;i++){ for(int j = 0;j<nocolr[i].size();j++){ for(int k = j+2;k<nocolr[i].size();k++){ if(sum[k]-sum[j]+a[j]>=1) cnt++; } } } cnt++; return 0; }