Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
52490 | zengjilin | 木板游戏 | C++ | 运行出错 | 0 | 0 MS | 92 KB | 800 | 2022-07-19 12:21:23 |
#include <bits/stdc++.h> using namespace std; int n; int l[500000],r[500000]; bool b[40000][40000]; int p(int x,int y) { int sum=1; for(int i=1; i<=n; i++) { if(b[y][i]) sum=max(sum,1+p(y,i)); } return sum; } int main() { scanf("%d",&n); for(int i=1; i<=n; i++) scanf("%d %d",&l[i],&r[i]); for(int i=1; i<=n; i++) { for(int j=1; j<=n; j++) { if(i==j) continue; if(l[i]<=l[j]&&r[i]>=r[j]) b[i][j]=1; else b[i][j]=0; } } for(int i=1; i<=n; i++) { for(int j=1; j<=n; j++) { cout<<b[i][j]<<" "; } cout<<endl; } int Max=0; for(int i=1; i<=n; i++) { for(int j=1; j<=n; j++) { if(b[i][j]) Max=max(p(i,j)+1,Max); } } cout<<Max<<endl; return 0; }