Submission #240033

# Submission time Handle Problem Language Result Execution time Memory
240033 2020-06-17T18:57:49 Z kshitij_sodani Two Transportations (JOI19_transportations) C++17
52 / 100
1654 ms 75024 KB
#include <bits/stdc++.h>
using namespace std;
typedef int64_t llo;
#define mp make_pair
#define pb push_back
#define a first 
#define b second
#include "Azer.h"



vector<pair<int,int>> adj[2001];
int dist[2001];
int vis[2001];
int num=0;
int cur=0;
int st=0;
int last=0;
pair<int,int> best;
int num2=0;
int cur2=0;
int n;
vector<int> Answer(){
	vector<int> ans2;
	for(int i=0;i<n;i++){
		ans2.pb(dist[i]);
	}
	return ans2;

}
void ReceiveA(bool x){
	if(st==0){
		if(x){
			num+=(1<<cur);
		}
		cur+=1;
		if(cur==20){
			cur=0;
			st=1;
		}
		else{
			return;
		}
		//cout<<cur<<"<"<<num<<endl;
	}
	if(st==1){
		for(auto j:adj[last]){
			if(dist[j.a]==-1 or dist[j.a]>dist[last]+j.b){
				dist[j.a]=dist[last]+j.b;
			}
		}
		best={-1,-1};
		for(int i=0;i<n;i++){
		//	//cout<<i<<":::"<<dist[i]<<endl;
			if(vis[i]==0 and dist[i]!=-1){
				if(best.a==-1){
					best={dist[i],i};
				}
				else{
					if(dist[i]<best.a){
						best={dist[i],i};
					}
				}
			}
		}
		//cout<<best.a<<"::"<<best.b<<"::"<<num<<endl;
		if(num==0){
			SendA(0);
			st=3;
		}
		else if(best.a==-1){
			SendA(1);
			st=2;
		}
		else if(best.a<num){
			SendA(0);
			st=3;
		}
		else{
			SendA(1);
			st=2;
		}
		//cout<<st<<"....."<<endl;
		if(st==2){
			return;
		}
	}
	if(st==2){
		if(x){
			num2+=(1<<cur2);
		}
		cur2+=1;
		//cout<<cur2<<";;;;;;;;;;;;;;;"<<endl;
		if(cur2==11){
			last=num2;
			//cout<<num2<<"//"<<endl;
			vis[last]=1;
			dist[last]=num;
		}
		else{
			return;
		}		
	}
	if(st==3){
		dist[best.b]=best.a;
		vis[best.b]=1;
		last=best.b;
		for(int i=0;i<20;i++){
			if((1<<i)&best.a){
				SendA(1);
			}
			else{
				SendA(0);
			}
		}
		for(int i=0;i<11;i++){
			if((1<<i)&best.b){
				SendA(1);
			}
			else{
				SendA(0);
			}
		}

	}
	//cout<<last<<','<<dist[last]<<endl;
	st=0;
	num=0;
	num2=0;
	cur2=0;
	cur=0;
/*	int kk=0;
	for(int i=0;i<n;i++){
		if(vis[i]==0){
			kk=1;
		}
	}
	if(kk){
		SendA(0);
	}*/
}
void InitA(int nn,int m,vector<int> aa,vector<int> bb,vector<int> cc){
	n=nn;
	for(int i=0;i<m;i++){
		adj[aa[i]].pb({bb[i],cc[i]});
		adj[bb[i]].pb({aa[i],cc[i]});
	}
	for(int i=1;i<n;i++){
		dist[i]=-1;
	}
	vis[0]=1;
	SendA(0);
}


/*int main(){
	ios_base::sync_with_stdio(false);
	cin.tie(NULL);

	return 0;
}*/
#include <bits/stdc++.h>
using namespace std;
typedef int64_t llo;
#define mp make_pair
#define pb push_back
#define a first
#define b second
#include "Baijan.h"

vector<pair<int,int>> adj2[2001];
int dist2[2001];
int st2=0;
int last2=0;
int vis2[2001];
pair<int,int> best2;
int ne;
int cur3=0;
int cur4=0;
int num3=0;
int num4=0;
void ReceiveB(bool x){
	if(st2==0){
		for(auto j:adj2[last2]){
			if(dist2[j.a]==-1 or dist2[j.a]>dist2[last2]+j.b){
				dist2[j.a]=dist2[last2]+j.b;
			}
		}
		best2={-1,-1};
		for(int i=0;i<ne;i++){
			if(vis2[i]==0 and dist2[i]!=-1){
				if(best2.a==-1){
					best2={dist2[i],i};
				}
				else{
					if(dist2[i]<best2.a){
						best2={dist2[i],i};
					}
				}
			}
		}
		//cout<<best2.a<<"::"<<best2.b<<endl;
		best2.a=max(best2.a,0);
		for(int i=0;i<20;i++){
			if((1<<i)&best2.a){
				SendB(1);
			}
			else{
				SendB(0);
			}
		}
		st2=1;

		return;
	}
	if(st2==1){
		if(x){
			st2=2;
		}
		else{
			st2=3;
			return;
		}
	}
	if(st2==2){
		//cout<<1111<<endl;
		st2=0;
		dist2[best2.b]=best2.a;
		vis2[best2.b]=1;
		last2=best2.b;
		for(int i=0;i<11;i++){
			if((1<<i)&best2.b){
				SendB(1);
			}
			else{
				SendB(0);
			}
		}
	}
	if(st2==3){
		if(cur3<20){
			if(x){
				num3+=(1<<cur3);
			}
			cur3++;
			return;
		}
		else{
			if(x){
				num4+=(1<<cur4);
			}
			cur4++;
			if(cur4==11){
				//cout<<20<<endl;

				//cout<<num4<<",,"<<num3<<endl;

				dist2[num4]=num3;
				vis2[num4]=1;
				last2=num4;
				
			}
			else{
				return;
			}
		}
	}
//	//cout<<last2<<"<<<>>>>"<<endl;
	num3=0;
	num4=0;
	cur3=0;
	cur4=0;
	st2=0;
	int kk=0;
	for(int i=0;i<ne;i++){
		if(vis2[i]==0){
			kk=1;
		}
	}
	if(kk){
		ReceiveB(0);
	}


}
void InitB(int nn,int m,vector<int> aa,vector<int> bb,vector<int> cc){
	ne=nn;
	for(int i=0;i<m;i++){
		adj2[aa[i]].pb({bb[i],cc[i]});
		adj2[bb[i]].pb({aa[i],cc[i]});
	}
	for(int i=1;i<ne;i++){
		dist2[i]=-1;
	}
	vis2[0]=1;
}


/*int main(){
	ios_base::sync_with_st2dio(false);
	cin.tie(NULL);

	return 0;
}*/
# Verdict Execution time Memory Grader output
1 Incorrect 650 ms 896 KB Wrong Answer [2]
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 18 ms 1280 KB Output is correct
2 Incorrect 554 ms 896 KB Wrong Answer [2]
3 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 626 ms 896 KB Wrong Answer [2]
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 746 ms 1840 KB Output is correct
2 Correct 663 ms 1792 KB Output is correct
3 Correct 896 ms 24008 KB Output is correct
4 Correct 640 ms 1536 KB Output is correct
5 Correct 730 ms 17464 KB Output is correct
6 Correct 578 ms 1584 KB Output is correct
7 Correct 677 ms 1856 KB Output is correct
8 Correct 658 ms 1536 KB Output is correct
9 Correct 1130 ms 36064 KB Output is correct
10 Correct 1022 ms 36032 KB Output is correct
11 Correct 1104 ms 61800 KB Output is correct
12 Correct 1232 ms 53856 KB Output is correct
13 Correct 727 ms 1792 KB Output is correct
14 Correct 18 ms 1536 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 746 ms 1840 KB Output is correct
2 Correct 663 ms 1792 KB Output is correct
3 Correct 896 ms 24008 KB Output is correct
4 Correct 640 ms 1536 KB Output is correct
5 Correct 730 ms 17464 KB Output is correct
6 Correct 578 ms 1584 KB Output is correct
7 Correct 677 ms 1856 KB Output is correct
8 Correct 658 ms 1536 KB Output is correct
9 Correct 1130 ms 36064 KB Output is correct
10 Correct 1022 ms 36032 KB Output is correct
11 Correct 1104 ms 61800 KB Output is correct
12 Correct 1232 ms 53856 KB Output is correct
13 Correct 727 ms 1792 KB Output is correct
14 Correct 18 ms 1536 KB Output is correct
15 Correct 916 ms 1864 KB Output is correct
16 Correct 1084 ms 1536 KB Output is correct
17 Correct 1196 ms 1792 KB Output is correct
18 Correct 924 ms 17600 KB Output is correct
19 Correct 784 ms 1664 KB Output is correct
20 Correct 1038 ms 18256 KB Output is correct
21 Correct 922 ms 1792 KB Output is correct
22 Correct 958 ms 1792 KB Output is correct
23 Correct 1281 ms 44080 KB Output is correct
24 Correct 1070 ms 43856 KB Output is correct
25 Correct 1444 ms 75024 KB Output is correct
26 Correct 1654 ms 64584 KB Output is correct
27 Correct 850 ms 1792 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 746 ms 1840 KB Output is correct
2 Correct 663 ms 1792 KB Output is correct
3 Correct 896 ms 24008 KB Output is correct
4 Correct 640 ms 1536 KB Output is correct
5 Correct 730 ms 17464 KB Output is correct
6 Correct 578 ms 1584 KB Output is correct
7 Correct 677 ms 1856 KB Output is correct
8 Correct 658 ms 1536 KB Output is correct
9 Correct 1130 ms 36064 KB Output is correct
10 Correct 1022 ms 36032 KB Output is correct
11 Correct 1104 ms 61800 KB Output is correct
12 Correct 1232 ms 53856 KB Output is correct
13 Correct 727 ms 1792 KB Output is correct
14 Correct 18 ms 1536 KB Output is correct
15 Correct 916 ms 1864 KB Output is correct
16 Correct 1084 ms 1536 KB Output is correct
17 Correct 1196 ms 1792 KB Output is correct
18 Correct 924 ms 17600 KB Output is correct
19 Correct 784 ms 1664 KB Output is correct
20 Correct 1038 ms 18256 KB Output is correct
21 Correct 922 ms 1792 KB Output is correct
22 Correct 958 ms 1792 KB Output is correct
23 Correct 1281 ms 44080 KB Output is correct
24 Correct 1070 ms 43856 KB Output is correct
25 Correct 1444 ms 75024 KB Output is correct
26 Correct 1654 ms 64584 KB Output is correct
27 Correct 850 ms 1792 KB Output is correct
28 Incorrect 581 ms 896 KB Wrong Answer [2]
29 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 650 ms 896 KB Wrong Answer [2]
2 Halted 0 ms 0 KB -