NC53785. 被鸽了的美男老师K
描述
输入描述
一行俩个整数n,t
接下来n行,每行两个整数a,b b=0表示下一步向左走,否则表示向右走
输出描述
一个整数,表示K埋了多少人
示例1
输入:
4 5 1 1 2 1 3 1 5 0
输出:
1
说明:
一开始:C++11(clang++ 3.9) 解法, 执行用时: 8ms, 内存消耗: 488K, 提交时间: 2019-10-01 11:06:32
#include<bits/stdc++.h> using namespace std; const int maxn=2e3+10; int i,j,n,m,k,x,y,a[maxn],b[maxn],f[maxn]; int main() { scanf("%d%d",&n,&m); for( i=1;i<=n;i++ ) { scanf("%d%d",&x,&y); a[i]=x,b[i]=y; } for( i=0;i<m;i++ ) // 模拟每一步 { memset(f,0,sizeof(f)); for( j=1;j<=n;j++ ) { if( a[j]<=i ) continue; a[j]+= b[j] ? 1 : -1; f[a[j]]++; } for( j=1;j<=n;j++ ) { if( f[a[j]]>1 ) b[j]^=1; } } for( i=1;i<=n;i++ ) k+= a[i]<=m ; printf("%d\n",k); }