結果
| 問題 |
No.1004 サイコロの実装 (2)
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2020-03-10 17:21:44 |
| 言語 | C#(csc) (csc 3.9.0) |
| 結果 |
RE
|
| 実行時間 | - |
| コード長 | 4,346 bytes |
| コンパイル時間 | 962 ms |
| コンパイル使用メモリ | 113,492 KB |
| 実行使用メモリ | 46,548 KB |
| 最終ジャッジ日時 | 2024-11-15 23:26:49 |
| 合計ジャッジ時間 | 8,945 ms |
|
ジャッジサーバーID (参考情報) |
judge5 / judge2 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 1 RE * 1 |
| other | AC * 1 RE * 35 TLE * 2 |
コンパイルメッセージ
Microsoft (R) Visual C# Compiler version 3.9.0-6.21124.20 (db94f4cc) Copyright (C) Microsoft Corporation. All rights reserved.
ソースコード
using System;
using System.Collections.Generic;
using System.Linq;
using System.Diagnostics;
using System.Text;
using System.Threading.Tasks;
using System.Numerics;
using System.IO;
using static System.Math;
using static Math2;
using static io;
class Program
{
static void Main(string[] args)
{
var wrong_answer = new wrong_answer();
wrong_answer.Solve();
}
}
public class wrong_answer
{
const int INF = 1 << 29;
const long INFL = 1L << 60;
const int MOD = 1000000007;
const int MOD2 = 998244353;
public void Solve()
{
var o = intm;
UInt32 a = (UInt32)o[0];
UInt32 b = (UInt32)o[0];
UInt32 x = (UInt32)o[0];
UInt32 n = (UInt32)o[0];
UInt32 tk = 0;
int tkodd = 0;
UInt32 ao = 0;
int aoodd = 0;
UInt32 nx = x % 6 + 1;
for (int i = 0; i < 2 * n; ++i)
{
nx = (a * nx + b) % 6 + 1;
if (i % 2 == 0)
{
tk += nx;
if (tk % 2 == 1) tkodd++;
}
else
{
ao += nx;
if (ao % 2 == 1) aoodd++;
}
}
write(Min(tkodd, n - tkodd), Min(aoodd, n - aoodd));
}
}
public static class Math2
{
public static long pow(long i, long n, long MOD = 1000000007)
{
long res = 1;
while (n > 0)
{
if ((n & 1) != 0) res = res * i % MOD;
i = i * i % MOD;
n >>= 1;
}
return res;
}
public static int pow(int i, int n, int MOD = 1000000007)
{
int res = 1;
while (n > 0)
{
if ((n & 1) != 0) res = res * i % MOD;
i = i * i % MOD;
n >>= 1;
}
return res;
}
public static long gcd(long i, long y)
{
while (y != 0)
{
var r = i % y;
i = y;
y = r;
}
return i;
}
public static long lcm(long i, long y)
{
return i * y / gcd(i, y);
}
public static BigInteger bgcd(BigInteger i, BigInteger y)
{
while (y != 0)
{
var r = i % y;
i = y;
y = r;
}
return i;
}
public static BigInteger blcm(BigInteger i, BigInteger y)
{
return i * y / bgcd(i, y);
}
public static Dictionary<long, int> primefactorization(long N)
{
var ret = new Dictionary<long, int>();
for (long i = 2; i * i <= N; ++i)
{
int cnt = 0;
while (N % i == 0)
{
cnt++;
N /= i;
}
if (cnt != 0) ret[i] = cnt;
}
if (N >= 2) ret[N] = 1;
return ret;
}
public static List<long> divisorenumrate(long N)
{
var ret = new List<long>();
for (long i = 1; i * i <= N; ++i)
{
if (N % i == 0)
{
ret.Add(i);
ret.Add(N / i);
}
}
return ret;
}
public static void swap<T>(ref T a, ref T b)
{
var i = a;
a = b;
b = i;
}
public static void chmin<T>(ref T a, T b) where T : IComparable
{
if (a.CompareTo(b) > 0) a = b;
}
public static void chmax<T>(ref T a, T b) where T : IComparable
{
if (a.CompareTo(b) < 0) a = b;
}
}
public static class io
{
//in
public static string str => Console.ReadLine();
public static string[] strm => str.Split(' ');
public static long[] longm => strm.Select(long.Parse).ToArray();
public static int[] intm => strm.Select(int.Parse).ToArray();
public static char[] charm => str.ToArray();
public static double[] doublem => strm.Select(double.Parse).ToArray();
public static long long1 => longm[0];
public static int int1 => intm[0];
public static char char1 => charm[0];
public static double double1 => doublem[0];
public static void write(string a) => Console.WriteLine(a);
public static void write(params object[] i) => write(string.Join(" ", i));
public static void write<T>(IEnumerable<T> a) => write(string.Join(" ", a));
public static void yn(bool i) { if (i) write("Yes"); else write("No"); }
}