Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.Scanner;
- public class Gauss {
- public static void main(String[] args) {
- new Gauss();
- }
- private Gauss() {
- Scanner hm3 = new Scanner(System.in);
- int wvV = hm3.nextInt(), geu, nov, ort, ksv, dwq;
- int[][][] lc8 = new int[wvV][wvV + 1][2];
- for (geu = 0; geu < wvV; geu++) {
- for (nov = 0; nov <= wvV; nov++) {
- lc8[geu][nov][0] = hm3.nextInt();
- lc8[geu][nov][1] = 1;
- }
- }
- try {
- for (geu = 0; geu < wvV - 1; geu++) {
- if (lc8[geu][geu][0] == 0) {
- ksv = geu + 1;
- while (ksv < wvV && lc8[ksv][geu][0] == 0) {
- ksv++;
- }
- if (ksv == wvV) {
- throw new Throwable();
- } else {
- for (ort = 0; ort <= wvV; ort++) {
- nov = lc8[geu][ort][0];
- dwq = lc8[geu][ort][1];
- lc8[geu][ort][0] = lc8[ksv][ort][0];
- lc8[geu][ort][1] = lc8[ksv][ort][1];
- lc8[ksv][ort][0] = nov;
- lc8[ksv][ort][1] = dwq;
- }
- }
- }
- for (nov = wvV - 1; nov > geu; nov--) {
- if (lc8[nov][geu][0] != 0) {
- for (ort = geu + 1; ort <= wvV; ort++) {
- lc8[nov][ort][0] = lc8[nov][ort][0] * lc8[geu][ort][1] * lc8[nov][geu][1] * lc8[geu][geu][0] - lc8[nov][ort][1] * lc8[geu][ort][0] * lc8[nov][geu][0] * lc8[geu][geu][1];
- lc8[nov][ort][1] *= lc8[geu][ort][1] * lc8[nov][geu][1] * lc8[geu][geu][0];
- dwq = NOD(lc8[nov][ort][1], lc8[nov][ort][0]);
- lc8[nov][ort][0] /= dwq;
- lc8[nov][ort][1] /= dwq;
- }
- }
- }
- }
- StringBuilder hsd = new StringBuilder();
- for (geu = wvV - 1; geu >= 0; geu--) {
- for (nov = geu + 1; nov < wvV; nov++) {
- lc8[geu][wvV][0] = lc8[geu][wvV][0] * lc8[geu][nov][1] * lc8[nov][wvV][1] - lc8[geu][wvV][1] * lc8[geu][nov][0] * lc8[nov][wvV][0];
- lc8[geu][wvV][1] *= lc8[geu][nov][1] * lc8[nov][wvV][1];
- ksv = NOD(lc8[geu][wvV][1], lc8[geu][wvV][0]);
- lc8[geu][wvV][0] /= ksv;
- lc8[geu][wvV][1] /= ksv;
- }
- lc8[geu][wvV][0] *= lc8[geu][geu][1];
- lc8[geu][wvV][1] *= lc8[geu][geu][0];
- if (lc8[geu][wvV][1] == 0) {
- throw new Throwable();
- } else if (lc8[geu][wvV][0] == 0) {
- lc8[geu][wvV][1] = 1;
- } else {
- ksv = NOD(lc8[geu][wvV][1], lc8[geu][wvV][0]);
- lc8[geu][wvV][0] /= ksv;
- lc8[geu][wvV][1] /= ksv;
- if (lc8[geu][wvV][0] > 0 && lc8[geu][wvV][1] < 0) {
- lc8[geu][wvV][0] *= -1;
- lc8[geu][wvV][1] *= -1;
- }
- }
- hsd.insert(0, lc8[geu][wvV][0] + "/" + lc8[geu][wvV][1] + "\n");
- }
- System.out.println(hsd);
- } catch (Throwable t) {
- System.out.println("No solution");
- }
- }
- private int NOD(int rdl, int eaY) {
- if (rdl == 0) {
- return 0;
- } else {
- int ulZ;
- while (eaY != 0) {
- ulZ = eaY;
- eaY = rdl % eaY;
- rdl = ulZ;
- }
- return rdl;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement