N个小朋友坐在教室里每个小朋友有一个行号和一个列号。有多少人的行号和列号都小于等于甲甲就是多少分。请你按输入顺序输出每个人的得分。限定必须用PAIR读入。41 33 12 24 4输出0003给出cpp代码
#include<iostream>
#include<algorithm>
#include<utility> //需要用到PAIR,所以要包含utility库
using namespace std;
pair<int,int> a[100005]; //定义PAIR型数组
int main(){
int n, x, y;
cin>>n;
for(int i=0;i<n;i++){
cin>>x>>y;
a[i]=make_pair(x,y); //将输入的行列号组成PAIR存入数组
}
sort(a,a+n); //按行号从小到大排序
int maxy=a[0].second; //初始化列号最大值为第一个人的列号
for(int i=0;i<n;i++){
if(a[i].second<=maxy) cout<<max(a[i].first,a[i].second)<<endl; //如果列号小于等于列号最大值,输出行列号中的较大值
else cout<<0<<endl; //否则输出0
maxy=max(maxy,a[i].second); //更新列号最大值
}
return 0;
}
原文地址: https://www.cveoy.top/t/topic/B8A 著作权归作者所有。请勿转载和采集!