Submission #4064312


Source Code Expand

using System;
using System.Collections.Generic;
using System.Linq;
class Scanner //標準入力
{
    string[] s;
    int i;

    char[] cs = new char[] { ' ' };

    public Scanner() {
        s = new string[0];
        i = 0;
    }

    public string next() {
        if (i < s.Length) return s[i++];
        string st = Console.ReadLine();
        while (st == "") st = Console.ReadLine();
        s = st.Split(cs, StringSplitOptions.RemoveEmptyEntries);
        if (s.Length == 0) return next();
        i = 0;
        return s[i++];
    }

    public int Int() {
        return int.Parse(next());
    }
    public int[] ArrayInt(int N, int add = 0) {
        int[] Array = new int[N];
        for (int i = 0; i < N; i++) {
            Array[i] = Int() + add;
        }
        return Array;
    }

    public long Long() {
        return long.Parse(next());
    }

    public long[] ArrayLong(int N, long add = 0) {
        long[] Array = new long[N];
        for (int i = 0; i < N; i++) {
            Array[i] = Long() + add;
        }
        return Array;
    }
}
class Program {
    static Scanner cin = new Scanner();
    static void Main(string[] args) {
        long A = cin.Long();
        long B = cin.Long();
        long C = cin.Long();

        int cnt = 1;
        if (A == C && B == C) Console.WriteLine(-1);
        else {
            while (true) {
                long power = (long)Math.Pow(2, cnt);
                long min = power / 3;
                if((power - min) % 2 == 0) {
                    long other = (power - min) / 2;
                    if ((min * A + other * B + other * C) % power == 0 && (min * A + other * B + other * C) / power % 2 != 0) break;
                    if ((min * B + other * A + other * C) % power == 0 && (min * B + other * A + other * C) / power % 2 != 0) break;
                    if ((min * C + other * A + other * B) % power == 0 && (min * C + other * A + other * B) / power % 2 != 0) break;
                }
                else {
                    long other = power - 2 * min;
                    if ((other * A + min * B + min * C) % power == 0 && (other * A + min * B + min * C) / power % 2 != 0) break;
                    if ((other * B + min * A + min * C) % power == 0 && (other * B + min * A + min * C) / power % 2 != 0) break;
                    if ((other * C + min * B + min * A) % power == 0 && (other * C + min * B + min * A) / power % 2 != 0) break;
                }
                cnt++;
            }
            Console.WriteLine(cnt);
        }
        Console.ReadLine();
    }
}

Submission Info

Submission Time
Task A - Cookie Exchanges
User Mikoshi
Language C# (Mono 4.6.2.0)
Score 0
Code Size 2650 Byte
Status WA
Exec Time 22 ms
Memory 13140 KB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 0 / 300
Status
AC × 3
AC × 15
WA × 2
Set Name Test Cases
Sample sample1.txt, sample2.txt, sample3.txt
All sample1.txt, sample2.txt, sample3.txt, in1.txt, in10.txt, in11.txt, in2.txt, in3.txt, in4.txt, in5.txt, in6.txt, in7.txt, in8.txt, in9.txt, sample1.txt, sample2.txt, sample3.txt
Case Name Status Exec Time Memory
in1.txt AC 22 ms 11092 KB
in10.txt WA 22 ms 9044 KB
in11.txt AC 21 ms 9044 KB
in2.txt WA 22 ms 11092 KB
in3.txt AC 22 ms 11092 KB
in4.txt AC 21 ms 9044 KB
in5.txt AC 22 ms 9044 KB
in6.txt AC 21 ms 9044 KB
in7.txt AC 22 ms 9044 KB
in8.txt AC 22 ms 13140 KB
in9.txt AC 22 ms 11092 KB
sample1.txt AC 21 ms 9044 KB
sample2.txt AC 22 ms 11092 KB
sample3.txt AC 21 ms 9172 KB