Pagini recente » Cod sursa (job #2651288) | Cod sursa (job #2560882) | Cod sursa (job #2714886) | Cod sursa (job #3143143) | Cod sursa (job #2644353)
#include <bits/stdc++.h>
#include <ext/pb_ds/assoc_container.hpp> // Common file
#include <ext/pb_ds/tree_policy.hpp> // Including tree_order_statistics_node_update
using namespace std;
using namespace __gnu_pbds;
typedef tree<
int,
null_type,
less<int>,
rb_tree_tag,
tree_order_statistics_node_update>
ordered_set;
typedef long long ll;
typedef long double ld;
typedef pair<int,int> pii;
typedef pair<ll,ll> pll;
ifstream fin("atac.in");
ofstream fout("atac.out");
int t,n,m,p;
ll x,y,a,b,c,d,z=-1;
vector<pii> muchie[32001];
int cost[5][33001];
bool use[1001];
void dfs(int start,int nod,int minim)
{
cost[start][nod]=minim;
use[nod]=1;
for(auto q:muchie[nod])
{
int node=q.first;
int cst=q.second;
if(!use[node])
dfs(start,node,min(minim,cst));
}
}
int main()
{
ios_base::sync_with_stdio(false);
fin.tie(0);
fout.tie(0);
fin>>n>>m>>p;
for(int i=2;i<=n;i++)
{
int u,v;
fin>>u>>v;
muchie[u].push_back({i,v});
muchie[i].push_back({u,v});
}
for(int i=1;i<=1;i++)
{
for(int j=1;j<=n;j++)
use[j]=0;
dfs(i,i,1e9);
}
fin>>x>>y>>a>>b>>c>>d;
while(m--)
{
if(z!=-1)
{
x=(x*a+y*b)%n+1;
y=(y*c+z*d)%n+1;
}
if(x==y)
z=0;
else
z=min(cost[1][y],cost[1][x]);
if(m<p)
fout<<z<<'\n';
}
return 0;
}