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);
}
}

BTS to perform at...

The countdown to the FIFA World Cup 2026 has...

Young Non-Smokers with Healthy...

We have long been taught that a healthy diet...

BigBasket’s profitability plan; UnifyApps...

In the fast-paced world of Indian technology and e-commerce,...

Who Owns Shokz And...

If you have ever looked into purchasing a pair...

Filipino workers locked in...

A bitter labor dispute is unfolding in New Taipei...

‘Once in a lifetime’:...

Atlanta Fan Fest Erupts as FIFA World Cup Semifinalists...

BTS to perform at FIFA World Cup 2026: Streaming date, time, venue and where to watch on OTT in India. Shakira, Madonna and Justin...

The countdown to the FIFA World Cup 2026 has officially begun, and music lovers across the globe have a massive reason to celebrate. In...

Young Non-Smokers with Healthy Diets Are Developing Lung Cancer at Unexpected Rates, New Research Suggests

We have long been taught that a healthy diet rich in fruits and vegetables is one of our best defenses against chronic illnesses, including...

BigBasket’s profitability plan; UnifyApps eyes $100 million funding

In the fast-paced world of Indian technology and e-commerce, significant shifts are underway as major players reposition themselves for sustainability and growth. Today’s business...

Who Owns Shokz And Where Are The Headphones Made?

If you have ever looked into purchasing a pair of open-ear audio devices, chances are you have encountered the brand Shokz. Known for pioneering...

Filipino workers locked in bitter labor dispute with Taiwanese manufacturer

A bitter labor dispute is unfolding in New Taipei City, Taiwan, spotlighting the harsh realities faced by Southeast Asian migrant workers. Filipino laborers employed...

‘Once in a lifetime’: Fans celebrate FIFA World Cup semifinal berth at Atlanta Fan Fest

Atlanta Fan Fest Erupts as FIFA World Cup Semifinalists are Decided The energy in Atlanta reached a fever pitch as the FIFA World Cup quarterfinal...

Reject Modernity, Return to 80s, Learn C.

In an era dominated by high-level frameworks, drag-and-drop builders, and AI-assisted coding, a surprising trend is emerging among the youngest generation of tech enthusiasts....

Ten Years in the Making. Fxtrading.com Is Just Getting Started

In the highly competitive and fast-paced world of online financial markets, longevity is a true testament to trust, innovation, and adaptability. Celebrating a monumental...

Glyco Reset Drops Announces Launch of Digital Platform and Consumer Wellness Product Initiative GlycoReset Blood Sugar Support

Glyco Reset Drops Launches New Digital Platform and Wellness Initiative In an era where proactive health management is becoming increasingly vital, Glyco Reset Drops has...