记录一下
感觉会用
#include<bits/stdc++.h>
using namespace std;
int sum[10001]={0};
map<int,int> mymap;
pair<int,int> pa;
bool cmp(pa a,pa b){
return a.second<b.second;
}
int main(){
int n,n1,p,price;
cin>>n;
for(int i=1;i<=n;i++){
cin>>n1;
for(int j=1;j<=n1;j++){
cin>>p>>price;
sum[i]-=price;
sum[p]+=price;
}
}
for(int i=1;i<=n;i++){
mymap.insert(make_pair(i,sum[i]));
}
map<int,int>::iterator it;
for(it=mymap.begin();it!=mymap.end();it++){
double x=(it->second)*1.0/100;
printf("%d %.2lf",it->first,x);
cout<<endl;
}
return 0;
}
map的排序也很重要(模板了)
#include<cstdio>
#include<algorithm>
#include<map>
#include<iostream>
#include<vector>
using namespace std;
typedef pair<int, int> pii;
map<int, int> mp;
map<int, int>::iterator mit;
vector<pii> vc;
vector<pii>::iterator vit;
bool cmp(pii a, pii b) {
return a.second < b.second;
}
int main() {
mp[1] = 11;
mp[2] = 2222;
mp[3] = 333;
mp[4] = 4;
mp[0] = 888888;
for(mit=mp.begin(); mit!=mp.end(); mit++) {
vc.push_back(pii(mit->first, mit->second));
cout<<mit->first<<" "<<mit->second<<endl;
}
puts("-------------------------------------");
sort(vc.begin(), vc.end(), cmp);
for(vit=vc.begin(); vit!=vc.end(); vit++) {
cout<<vit->first<<" "<<vit->second<<endl;
}
return 0;
}