公共钥匙盒满分题解
#include<iostream>
#include<algorithm>
using namespace std;
struct Key{
int name;
int begin;
int time;
int flag=0;
};
bool EndCmp(Key first,Key second){
if(first.begin+first.time==second.begin+second.time){
return first.name<second.name;
}
else
return first.begin+first.time<second.begin+second.time;
}
int main(){
int n,k;
int first=10000000;
int last=-1;
cin>>n>>k;
Key key[k];
int num[n];
for(int i=0;i<n;i++){
num[i]=i+1;
}
for(int i=0;i<k;i++){
cin>>key[i].name>>key[i].begin>>key[i].time;
if(key[i].begin<first){
first=key[i].begin;
}
if(key[i].begin+key[i].time>last){
last=key[i].begin+key[i].time;
}
}
sort(key,key+k,EndCmp);
for(int i=first;i<=last;i++){
for(int j=0;j<k;j++){
if(key[j].begin+key[j].time==i && key[j].flag==1){
for(int z=0;z<n;z++){
if(num[z]==0){
num[z]=key[j].name;
key[j].flag=0;
break;
}
}
}
if(key[j].begin==i && key[j].flag==0){
for(int z=0;z<n;z++){
if(num[z]==key[j].name){
num[z]=0;
key[j].flag=1;
break;
}
}
}
}
}
for(int i=0;i<n;i++){
cout<<num[i]<<" ";
}
return 0;
}
标题
#include<iostream>
#include<string.h>
using namespace std;
struct node{
int x;
int y;
};
int main(){
int n;
long long l;
int s;
cin>>n>>l>>s;
int B[s+1][s+1];
node Ain[n];
for(int i=0;i<n;i++){
cin>>Ain[i].x>>Ain[i].y;
}
for(int i=0;i<s+1;i++){
for(int j=0;j<s+1;j++){
cin>>B[i][j];
}
}
int sum=0;
for(int i=0;i<n;i++){
bool flag=true;
if(Ain[i].x+s>l || Ain[i].y+s>l){
flag=false;
}
if(flag){
for(int j=1;j<s+1;j++){
for(int z=1;z<s+1;j++){
if()
}
}
}
}
}
#include<iostream>
#include<set>
#include<utility>
using namespace std;
int main(){
set<pair<int,int>> s;
pair<int,int> p1=make_pair(1,1);
s.insert(p1);
pair<int,int> p2=make_pair(1,2);
s.insert(p2);
pair<int,int> p3=make_pair(1,3);
s.insert(p3);
pair<int,int> p4=make_pair(1,4);
s.insert(p4);
for(auto it:s){
cout<<it.first<<endl;
}
}