Set up base directory for usaco and started on gift1

This commit is contained in:
2022-01-06 19:56:43 +01:00
parent 1f1d45e2db
commit a191aec9bb
2 changed files with 92 additions and 0 deletions

22
usaco/base.cpp Normal file
View File

@@ -0,0 +1,22 @@
/*
ID: philipp17
PROG:
LANG: C++
*/
/* LANG can be C++11 or C++14 for those more recent releases */
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main() {
ofstream fout (".out");
ifstream fin (".in");
string a, b;
fin >> a >> b;
return 0;
}

70
usaco/ch1/gift1.cpp Normal file
View File

@@ -0,0 +1,70 @@
/*
ID: philipp17
PROG: gift1
LANG: C++
*/
/* LANG can be C++11 or C++14 for those more recent releases */
#include <iostream>
#include <fstream>
#include <string>
#include <map>
#include <vector>
using namespace std;
int main() {
ofstream fout ("gift1.out");
ifstream fin ("gift1.in");
int np;
fin >> np;
map<string, int> names_to_index;
map<int, string> index_to_name;
vector<int> bank(np, 0);
vector<int> spendings(np, 0);
for(int i = 0; i < np; ++i){
string s;
fin >> s;
names_to_index[s] = i;
index_to_name[i] = s;
}
for(int i = 0; i < np; ++i){
string name;
int money, ng;
fin >> name >> money >> ng;
if(ng == 0){
continue;
}
vector<string> receivers(ng);
for(int j = 0; j < ng; ++i){
fin >> receivers[j];
}
if(money == 0){
continue;
}
int money_per_person = money / ng;
for(const string &receiver : receivers){
bank[names_to_index[receiver]] += money_per_person;
spendings[names_to_index[receiver]] -= money_per_person;
}
}
// Printing the output
for(int i = 0; i < np; ++i){
fout << index_to_name[i] << bank[i] - spendings[i] << endl;
}
return 0;
}