1417D - Make Them Equal - CodeForces Solution


constructive algorithms greedy math *2000

Please click on ads to support us..

C++ Code:

#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define sc(a) scanf("%d",&a)
#define scc(a,b) scanf("%d%d",&a,&b)
const int maxn=3e5+10;

int t,n,sum,a[maxn];
int main()
{
	sc(t);
	while(t--)
	{
		sc(n);
		sum=0;
		for(int i=1;i<=n;i++)
		{
			sc(a[i]);
			sum+=a[i];
		}
		if(sum%n!=0)
		{
			printf("-1\n");
		}
		else
		{
			printf("%d\n",3*(n-1));
			for(int i=2;i<=n;i++)
			{
				printf("%d %d %d\n",1,i,(i-a[i]%i)%i);
				a[1]-=(i-a[i]%i)%i;
				a[i]+=(i-a[i]%i)%i;
				printf("%d %d %d\n",i,1,a[i]/i);
				a[1]+=a[i]/i*i;
				a[i]-=a[i]/i*i;
			}
			for(int i=2;i<=n;i++)
			{
				printf("%d %d %d\n",1,i,sum/n);
			}
		}
	}
	return 0;
} 


Comments

Submit
0 Comments
More Questions

431B - Shower Line
282C - XOR and OR
1582B - Luntik and Subsequences
609A - Флеш-карты
1207A - There Are Two Types Of Burgers
371C - Hamburgers
343B - Alternating Current
758B - Blown Garland
1681B - Card Trick
1592A - Gamer Hemose
493D - Vasya and Chess
1485A - Add and Divide
337B - Routine Problem
1392D - Omkar and Bed Wars
76E - Points
762C - Two strings
802M - April Fools' Problem (easy)
577B - Modulo Sum
1555B - Two Tables
1686A - Everything Everywhere All But One
1469B - Red and Blue
1257B - Magic Stick
18C - Stripe
1203B - Equal Rectangles
1536A - Omkar and Bad Story
1509A - Average Height
1506C - Double-ended Strings
340A - The Wall
377A - Maze
500A - New Year Transportation