Submission #210851

#TimeUsernameProblemLanguageResultExecution timeMemory
210851LawlietDynamic Diameter (CEOI19_diameter)C++17
7 / 100
408 ms10828 KiB
#include <bits/stdc++.h>
 
using namespace std;
typedef long long int lli;
 
const int MAXN = 100010;
 
int n, q;
 
int weight[MAXN];
 
lli maxW;
lli lastAns;
 
multiset< lli > w;
 
lli diameter()
{
	lli sum = 0;
	auto it = w.end();
 
	it--;
	sum += *it;
 
	it--;
	sum += *it;
 
	return sum;
}
 
int main()
{
	scanf("%d %d %lld",&n,&q,&maxW);
 
	w.insert( 0 );
 
	for(int i = 1 ; i < n ; i++)
	{
		int U, V, W;
		scanf("%d %d %d",&U,&V,&W);
 
		w.insert( W );
		weight[i] = W;
	}
 
	diameter();
 
	for(int i = 1 ; i <= q ; i++)
	{
		lli d, e;
		scanf("%lld %lld",&d,&e);
 
		d = ( d + lastAns )%( n - 1 ) + 1;
		e = ( e + lastAns )%maxW;
 
		w.erase( w.find( weight[d] ) );
		weight[d] = e;
		w.insert( weight[d] );
 
		lastAns = diameter();
		printf("%lld\n",lastAns);
	}
}

Compilation message (stderr)

diameter.cpp: In function 'int main()':
diameter.cpp:33:7: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  scanf("%d %d %lld",&n,&q,&maxW);
  ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
diameter.cpp:40:8: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   scanf("%d %d %d",&U,&V,&W);
   ~~~~~^~~~~~~~~~~~~~~~~~~~~
diameter.cpp:51:8: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   scanf("%lld %lld",&d,&e);
   ~~~~~^~~~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...