Codeforces Round #409 (rated, Div. 2, based on VK Cup 2017 Round 2), problem: (E) Vulnerable Kerbals Solution in JAVA

import java.util.ArrayList;
import java.util.Scanner;
/*

4 10
2 4 6 8
4 10
2 9 1 0
*/
public class e {
static ArrayList<Integer>[] gcdLists;
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int n = in.nextInt(),m=in.nextInt();
boolean[] forbid = new boolean[m];
for(int i=0;i<n;i++) {
forbid[in.nextInt()] = true;
}
gcdLists = new ArrayList[m+1];
for(int i=0;i<=m;i++)
gcdLists[i] = new ArrayList<>();
for(int i=0;i<m;i++) {
if(forbid[i]) continue;
int gcd = gcd(i, m);
gcdLists[gcd].add(i);
}
int[] ans = new int[m+1];
ans[m] = gcdLists[m].size();
for(int i=m-1;i>=1;i–) {
ans[i] = 0;
for(int j=i+i;j<=m;j+=i) {
if(m % j != 0) continue;
ans[i] = Math.max(ans[i], ans[j]);
}
ans[i] += gcdLists[i].size();
}
int gcd = 1;
ArrayList<Integer> list = new ArrayList<>();
while(gcd != m) {
for(int v : gcdLists[gcd]) {
list.add(v);
}
for(int j=gcd+gcd;j<=m;j+=gcd) {
if(m % j != 0) continue;
if(ans[j] == ans[gcd] – gcdLists[gcd].size()) {
gcd = j;
break;
}
}
}
for(int v : gcdLists[m])
list.add(v);
// System.out.println(list);
System.out.println(list.size());
if(list.size() >= 1) {
int last = list.get(0);
System.out.print(last);
for(int i=1;i<list.size();i++) {
int mult = solve(last,list.get(i),m);
System.out.print(‘ ‘);
System.out.print(mult);
last = list.get(i);
}
}
System.out.println();

}
static int solve(int a, int b, int m) {
int gcd = gcd(a,m);
a /= gcd;
b /= gcd;
m /= gcd;
int mi = ((modInv(a,m)%m)+m)%m;
// System.out.println(“modInv(” + a + “,” + m + “) = ” + mi);
return (int) ((mi*(long)b)%m);
}
static int modInv(int x, int mod) {
if(x == 1) return 1;
if(gcd(x, mod) != 1) return 0;
int r = mod % x;
return modInv(r, x % r, 0, 1, mod / x, x / r);
}

static int modInv(int a, int b, int y0, int y1, int q0, int q1) {
int y2 = y0 – y1*q0;
return b == 0 ? y2 : modInv(b, a % b, y1, y2, q1, a / b);
}
static int gcd(int a, int b) {
return b == 0 ? a : gcd(b,a%b);
}
}

Hepatitis A Outbreak in...

The Centers for Disease Control and Prevention (CDC) has...

Shanghai Tonight opens with...

The vibrant metropolis of Shanghai has officially kicked off...

A new chapter with...

Nepal's Himalayan rivers are more than just scenic natural...

Knicks, NYC Officials Spar...

A heated political and sports dispute has erupted in...

Hepatitis A Outbreak in Canada Leaves 4 Dead, 142 Hospitalized; CDC Issues Travel Notice as Many Americans Traveling to Canada Remain Unvaccinated.

The Centers for Disease Control and Prevention (CDC) has officially issued a travel notice for Manitoba, Canada, following a severe Hepatitis A outbreak that...

Shanghai Tonight opens with nearly 200 nighttime events

The vibrant metropolis of Shanghai has officially kicked off its highly anticipated nocturnal festival, marking a major milestone in the city's cultural and economic...

A new chapter with India: Water resources, sovereignty, and Nepal’s strategic independence

Nepal's Himalayan rivers are more than just scenic natural wonders; they are the lifeblood of the nation's future economic prosperity. In a shifting geopolitical...

Why Everyone is Obsessed with the Smart Plug Wifi Outlet

Are you tired of dealing with everyday frustrations that slow down your routine? We've all been...

Knicks, NYC Officials Spar Over MSG Watch Parties

A heated political and sports dispute has erupted in New York City, as Madison Square Garden (MSG) Entertainment and local public officials trade sharp...

Why Everyone is Obsessed with the Under Desk Foot Rest

Are you tired of dealing with everyday frustrations that slow down your routine? We've all been...

Why Everyone is Obsessed with the Rug Gripper Pads

Are you tired of dealing with everyday frustrations that slow down your routine? We've all been...

curl-programming-lang 1.0.2

Introduction to curl-programming-lang 1.0.2 The open-source developer ecosystem continues to thrive with the introduction of innovative tools designed to simplify software creation. A fascinating new...

Why Everyone is Obsessed with the Blind Spot Mirrors

Are you tired of dealing with everyday frustrations that slow down your routine? We've all been...