mabodx
BAN USER
Questions (1)
Comments (1)
Followers (5)
Reputation 190
Repsandrafdenn, Associate at CareerCup
Je suis développeur web dans une société de Wild Oats Markets, j'adore faire du shopping et j'ai une ...
Repsonjamramos45, Graphics Programmer at CGI-AMS
I am a strong writer with a passion for story-telling who has extensive experience of writing literary compositions, articles, reports ...
RepHello, I am Sherri from Orangeburg. I am working as a Nurse in Kleinhans Hospital. I like painting, reading, and ...
Repmartinskrull, Analyst at A9
Hi everyone, I am from new york,USA. I currently work in the Affiliate Marketing industry. I love all things ...
RepAmberBrook, Animator at A9
Hi everyone, Done my master of arts in specialized journalism.Also an member of society of professional journalists since 2015 ...
CareerCup is the world's biggest and best source for software engineering interview preparation. See all our resources.
#include<iostream>
- mabodx March 07, 2012#include<algorithm>
#include<cstdio>
#include<cstring>
#include<sstream>
#include<assert.h>
#include<cmath>
#include<vector>
#include<string>
#include<map>
#include<set>
#include<queue>
#include<stack>
using namespace std;
typedef long long ll;
const int inf=1000000000;
const double pi=acos(-1.0);
#define eps (1e-15)
#define L(x) ((x)<<1)
#define R(x) ((x)<<1|1)
#define see(x)(cerr<<"[line:"<<__LINE__<<" "<<#x<<" "<<x<<endl)
#define se(x) cerr<<x<<" "
template<class T>T& ls(T& a,T b)
{ if(b<a) a=b; return a;}
template<class T>T& gs(T& a,T b)
{ if(b>a) a=b; return a;}
inline int to_i(const string& s)
{int n;sscanf(s.c_str(),"%d",&n);return n;}
inline string to_s(int n)
{char buf[32];sprintf(buf,"%d",n);return string(buf);}
const int maxn =1000;
int n,m;
struct node
{
vector<int> l,r;
int la,ra;
int sum,add;
node(){};
void init()
{
l.clear();
r.clear();
la=ra=0;
sum=10;
add=0;
}
}tr[maxn];
int cur=0;
char ch[1000];
int get(int rt)
{
int i,j,k;
for(i=0; i<tr[rt].l.size(); i++)
{
k=get(tr[rt].l[i]);
tr[rt].la+=k;
}
for(i=0; i<tr[rt].r.size(); i++)
{
k=get(tr[rt].r[i]);
tr[rt].ra+=k;
}
tr[rt].add=tr[rt].la-tr[rt].ra;
return tr[rt].sum+=max(tr[rt].la,tr[rt].ra)*2;
}
int main()
{
freopen("in.txt","r",stdin);
int i,j,k,t,x,y;
cur=1;
scanf("%d",&n);
getchar();
string s;
for(i=1; i<=n; i++)
{
tr[i].init();
stringstream in;
cin.getline(ch,1000);
in<<ch;
in>>x;
tr[i].la=x;
while(in>>x)
{
x++;
tr[i].l.push_back(x);
}
in.clear();
cin.getline(ch,1000);
in<<ch;
in>>x;
tr[i].ra=x;
while(in>>x)
{
x++;
tr[i].r.push_back(x);
}
}
get(1);
for(i=1; i<=n; i++)
{
if(tr[i].add<0)
printf("%d:%d %d\n",i-1,-tr[i].add,0);
else
printf("%d:%d %d\n",i-1,0,tr[i].add);
}
}