201812-1
#include<bits/stdc++.h>
using namespace std;
#define inf 0x3f3f3f3f
#define ll long long
const int N=200005;
const int mod=1e9+7;
const double eps=1e-8;
const double PI = acos(-1.0);
#define lowbit(x) (x&(-x))
ll gcd(ll a,ll b){return b==0?a:gcd(b,a%b);}
ll qpow(ll a,ll b){ll res=1;while(b){if(b&1) res=res*a%mod;a=a*a%mod;b>>=1;}return res;}
ll inv(ll a,ll p){return qpow(a,p-2);}
int main()
{
std::ios::sync_with_stdio(false);
// freopen("in.txt","r",stdin);
ll r,y,g;
cin>>r>>y>>g;
int n;
cin>>n;
ll ans=0;
for(int i=1;i<=n;i++)
{
ll o,x;
cin>>o>>x;
if(o==1)
{
ans+=x;
}
else if(o==2)
{
ans+=x+r;
}
else if(o==0)
{
ans+=x;
}
}
cout<<ans<<endl;
return 0;
}
201812-2
#include<bits/stdc++.h>
using namespace std;
#define inf 0x3f3f3f3f
#define ll long long
const int N=200005;
const int mod=1e9+7;
const double eps=1e-8;
const double PI = acos(-1.0);
#define lowbit(x) (x&(-x))
int main()
{
std::ios::sync_with_stdio(false);
// freopen("in.txt","r",stdin);
ll r,y,g,tot;
cin>>r>>y>>g;
tot=r+y+g;
int n;
cin>>n;
ll ans=0;
for(int i=1; i<=n; i++)
{
ll o,x;//红绿黄
cin>>o>>x;
if(o==0)
{
ans+=x;
}
else if(o==1)//红
{
if(ans>=x)//换灯
{
ll t=ans-x;
t%=tot;
if(t<g)
{
continue;
}
else if(t<g+y)
{
ans+=(r+(g+y-t));
}
else if(t<g+y+r)
{
ans+=((g+y+r)-t);
}
}
else
{
ans+=(x-ans);
}
}
else if(o==2)//黄
{
if(ans>=x)//换灯
{
ll t=ans-x;
t%=tot;
if(t<r)//红
{
ans+=(r-t);
}
else if(t<r+g)//绿
{
continue;
}
else if(t<g+y+r)//黄
{
ans+=((g+y+r)-t+r);
}
}
else
{
ans+=x-ans+r;
}
}
else if(o==3)
{
if(ans>=x)//换灯
{
ll t=ans-x;
t%=tot;
if(t<y)//黄
{
ans+=(y-t+r);
}
else if(t<y+r)//红
{
ans+=(y+r-t);
}
else if(t<g+y+r)//绿
{
continue;
}
}
else
{
continue;
}
}
}
cout<<ans<<endl;
return 0;
}
201812-4
#include<bits/stdc++.h>
using namespace std;
#define inf 0x3f3f3f3f
#define ll long long
const int maxn=5e5+5;
const int maxm=5e5+5;
const int mod=1e9+7;
const double eps=1e-8;
const double PI = acos(-1.0);
#define lowbit(x) (x&(-x))
struct edge
{
ll u,v,w;
} eg[maxm];
ll tot=0,pre[maxn],n,m,r;
void addedge(ll u,ll v,ll w)
{
eg[tot].u=u;
eg[tot].v=v;
eg[tot++].w=w;
}
bool cmp(edge a,edge b)
{
return a.w<b.w;
}
ll find(ll x)
{
if(pre[x]==x) return x;
else return pre[x]=find(pre[x]);
}
ll kruskal(ll n)
{
sort(eg,eg+tot,cmp);
ll cnt=0,ans=0,mx=0;
for(ll i=0; i<tot; i++)
{
ll u=eg[i].u,v=eg[i].v,w=eg[i].w;
ll fu=find(u),fv=find(v);
if(fu!=fv)
{
ans+=w;
pre[fu]=fv;
mx=max(mx,w);
cnt++;
}
if(cnt==n-1) break;
}
if(cnt<n-1) return -1;
else return mx;
}
void init()
{
tot=0;
for(ll i=1; i<=n; i++)
pre[i]=i;
}
int main()
{
std::ios::sync_with_stdio(false);
while(cin>>n>>m>>r)
{
init();
for(int i=0; i<m; i++)
{
ll a,b,c;
cin>>a>>b>>c;
addedge(a,b,c);
addedge(b,a,c);
}
cout<<kruskal(n)<<endl;
}
return 0;
}