本文整理汇总了C#中CFTraining.Helpers.FastScanner.NextLong方法的典型用法代码示例。如果您正苦于以下问题:C# FastScanner.NextLong方法的具体用法?C# FastScanner.NextLong怎么用?C# FastScanner.NextLong使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CFTraining.Helpers.FastScanner
的用法示例。
在下文中一共展示了FastScanner.NextLong方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Run
public static void Run()
{
using (FastScanner fs = new FastScanner(new BufferedStream(Console.OpenStandardInput())))
using (StreamWriter writer = new StreamWriter(new BufferedStream(Console.OpenStandardOutput())))
{
long n = fs.NextLong(), k = fs.NextLong(), m = n - k;
int p = fs.NextInt();
while (p-- > 0)
{
long x = fs.NextLong() - 1;
if (m == 0) writer.Write("X");
else if (k == 0) writer.Write(".");
else
{
if (n % 2 == 0)
{
if (x % 2 == 0 && x <= 2 * Math.Min(m, n / 2) - 2) writer.Write(".");
else if (x % 2 == 1 && x <= 2 * (m - n / 2) - 1) writer.Write(".");
else writer.Write("X");
}
else
{
if (x % 2 == 0 && x <= 2 * Math.Min(m, (n - 1) / 2) - 2) writer.Write(".");
else if (x % 2 == 1 && x <= 2 * (m - (n - 1) / 2) - 1) writer.Write(".");
else writer.Write("X");
}
}
}
}
}
示例2: Run
public static void Run()
{
using (FastScanner fs = new FastScanner(new BufferedStream(Console.OpenStandardInput())))
using (StreamWriter writer = new StreamWriter(new BufferedStream(Console.OpenStandardOutput())))
{
int q = fs.NextInt();
long u, v, w;
List<Edge> path;
while (q-- > 0)
{
int t = fs.NextInt();
if (t == 1)
{
u = fs.NextLong();
v = fs.NextLong();
w = fs.NextLong();
path = GetPath(u, v);
foreach (var edge in path)
{
if (!costs.ContainsKey(edge)) costs.Add(edge, 0);
costs[edge] += w;
}
}
else
{
u = fs.NextLong();
v = fs.NextLong();
path = GetPath(u, v);
writer.WriteLine(GetCost(path));
}
}
}
}
示例3: Run
public static void Run()
{
using (FastScanner fs = new FastScanner(new BufferedStream(Console.OpenStandardInput())))
using (StreamWriter writer = new StreamWriter(new BufferedStream(Console.OpenStandardOutput())))
{
N = fs.NextInt();
M = fs.NextInt();
long k = fs.NextLong();
A = new Hay[N, M];
Answer = new int[N, M];
Visited = new bool[N, M];
List<Hay> hays = new List<Hay>(N * M);
DisjointSet dsu = new DisjointSet();
for (int i = 0; i < N; i++)
{
for (int j = 0; j < M; j++)
{
A[i, j] = new Hay { Id = M * i + j, Row = i, Column = j, Height = fs.NextLong() };
hays.Add(A[i, j]);
}
}
hays = hays.OrderByDescending(h => h.Height).ToList();
foreach (Hay hay in hays)
{
dsu.MakeSet(hay.Id);
if (hay.Row > 0 && hay.Height <= A[hay.Row - 1, hay.Column].Height) dsu.Union(hay.Id, A[hay.Row - 1, hay.Column].Id);
if (hay.Column > 0 && hay.Height <= A[hay.Row, hay.Column - 1].Height) dsu.Union(hay.Id, A[hay.Row, hay.Column - 1].Id);
if (hay.Row < N - 1 && hay.Height <= A[hay.Row + 1, hay.Column].Height) dsu.Union(hay.Id, A[hay.Row + 1, hay.Column].Id);
if (hay.Column < M - 1 && hay.Height <= A[hay.Row, hay.Column + 1].Height) dsu.Union(hay.Id, A[hay.Row, hay.Column + 1].Id);
int count = dsu.GetSetElementCount(hay.Id);
if (k % hay.Height == 0)
{
long need = k / hay.Height;
int temp = (int)need;
if (need <= (long)count)
{
RunDFS(hay.Row, hay.Column, (int)hay.Height, ref temp);
writer.WriteLine("YES");
for (int i = 0; i < N; i++)
{
for (int j = 0; j < M; j++)
{
writer.Write(Answer[i, j] + " ");
}
writer.WriteLine();
}
return;
}
}
}
writer.WriteLine("NO");
}
}
示例4: Run
public static void Run()
{
using (FastScanner fs = new FastScanner(new BufferedStream(Console.OpenStandardInput())))
using (StreamWriter writer = new StreamWriter(new BufferedStream(Console.OpenStandardOutput())))
{
int t = fs.NextInt();
for (int i = 1; i <= t; i++)
{
long w = fs.NextLong();
if ((w & 1) == 0)
{
long m = 1;
while ((w & 1) == 0)
{
m <<= 1;
w >>= 1;
}
writer.WriteLine("Case " + i + ": " + w + " " + m);
}
else
{
writer.WriteLine("Case " + i + ": Impossible");
}
}
}
}
示例5: Run
public static void Run()
{
using (FastScanner fs = new FastScanner(new BufferedStream(Console.OpenStandardInput())))
using (StreamWriter writer = new StreamWriter(new BufferedStream(Console.OpenStandardOutput())))
{
int t = fs.NextInt();
for (int i = 1; i <= t; i++)
{
long s = fs.NextLong();
long upper = (long)Math.Ceiling(Math.Sqrt(s));
long lower = upper - 1;
long lt = s - lower * lower, x, y;
if ((upper & 1) == 0)
{
x = Math.Min(upper, lt);
y = upper - (lt > upper ? (lt - upper) : 0);
}
else
{
x = upper - (lt > upper ? (lt - upper) : 0);
y = Math.Min(upper, lt);
}
writer.WriteLine("Case " + i + ": " + x + " " + y);
}
}
}
示例6: Run
public static void Run()
{
using (FastScanner fs = new FastScanner(new BufferedStream(Console.OpenStandardInput())))
using (StreamWriter writer = new StreamWriter(new BufferedStream(Console.OpenStandardOutput())))
{
long l1 = fs.NextLong(), r1 = fs.NextLong();
long l2 = fs.NextLong(), r2 = fs.NextLong();
long k = fs.NextLong();
if ((l1 >= l2 && l1 <= r2) || (l2 >= l1 && l2 <= r1))
{
long r = Math.Min(r1, r2), l = Math.Max(l1, l2);
long ans = r - l + 1;
writer.WriteLine(k >= l && k <= r ? ans - 1 : ans);
}
else writer.WriteLine(0);
}
}
示例7: Run
public static void Run()
{
using (FastScanner fs = new FastScanner(new BufferedStream(Console.OpenStandardInput())))
using (StreamWriter writer = new StreamWriter(new BufferedStream(Console.OpenStandardOutput())))
{
long A = fs.NextLong(), B = fs.NextLong(), n = fs.NextLong(), x = fs.NextLong();
if (n == 0) writer.WriteLine(x);
else if (n == 1) writer.WriteLine((A * x + B) % _mod);
else
{
long[,] initial = new long[,] { { A * x + B, 1 } };
long[,] factor = new long[,] { { A, 0 }, { B, 1 } };
long[,] res = MultiplyMatricesMod(initial, BinPowMatrixMod(factor, n - 1, _mod), _mod);
writer.WriteLine(res[0, 0]);
}
}
}
示例8: Run
public static void Run()
{
using (FastScanner fs = new FastScanner(new BufferedStream(Console.OpenStandardInput())))
using (StreamWriter writer = new StreamWriter(new BufferedStream(Console.OpenStandardOutput())))
{
long m = fs.NextLong(), d = 0;
long count = Solve(m, ref d);
writer.WriteLine(count + " " + (m - d));
}
}
示例9: Run
public static void Run()
{
using (FastScanner fs = new FastScanner(new BufferedStream(Console.OpenStandardInput())))
using (StreamWriter writer = new StreamWriter(new BufferedStream(Console.OpenStandardOutput())))
{
long maxCapacity = (long)1e16;
long ways = fs.NextLong();
long requiredCapacity = FindVal(1, maxCapacity, ways);
writer.WriteLine(requiredCapacity);
}
}
示例10: Run
public static void Run()
{
using (FastScanner fs = new FastScanner(new BufferedStream(Console.OpenStandardInput())))
using (StreamWriter writer = new StreamWriter(new BufferedStream(Console.OpenStandardOutput())))
{
long sn = fs.NextLong();
long n = (long)Math.Ceiling((Math.Sqrt(8 * sn + 1) - 1) / 2);
long number = sn - (n * (n - 1)) / 2;
writer.WriteLine(number);
}
}
示例11: Run
public static void Run()
{
using (FastScanner fs = new FastScanner(new BufferedStream(Console.OpenStandardInput())))
using (StreamWriter writer = new StreamWriter(new BufferedStream(Console.OpenStandardOutput())))
{
long d = fs.NextLong(), k = fs.NextLong(), a = fs.NextLong(), b = fs.NextLong(), t = fs.NextLong();
if (k >= d)
{
writer.WriteLine(d * a);
}
else
{
long dc = d / k * k;
long res = d * b + ((long)Math.Ceiling(dc * 1.0 / k) - 1) * t + dc * (a - b);
res = Math.Min(d * b + ((long)Math.Ceiling(d * 1.0 / k) - 1) * t + d * (a - b), res);
res = Math.Min(d * b + k * (a - b), res);
writer.WriteLine(res);
}
}
}
示例12: Run
public static void Run()
{
using (FastScanner fs = new FastScanner(new BufferedStream(Console.OpenStandardInput())))
using (StreamWriter writer = new StreamWriter(new BufferedStream(Console.OpenStandardOutput())))
{
int n = fs.NextInt();
int mod = (int)1e9 + 7;
long k = fs.NextLong();
long[] a = new long[n];
long[,] D1 = new long[1, n];
long[,] C = new long[n, n];
for (int i = 0; i < n; i++)
{
D1[0, i] = 1;
a[i] = fs.NextLong();
}
for (int i = 0; i < n; i++)
{
for (int j = 0; j < n; j++)
{
C[i, j] = IsValidPair(a[i], a[j]);
}
}
if (k == 1)
{
writer.WriteLine(n);
return;
}
long[,] Dk = MatrixProductMod(D1, BinPowMatrixMod(C, k - 1, mod), mod);
long sum = 0;
for (int i = 0; i < n; i++)
{
sum += Dk[0, i];
sum %= mod;
}
writer.WriteLine(sum);
var s = 0;
}
}
示例13: Run
public static void Run()
{
using (FastScanner fs = new FastScanner(new BufferedStream(Console.OpenStandardInput())))
using (StreamWriter writer = new StreamWriter(new BufferedStream(Console.OpenStandardOutput())))
{
long n = fs.NextInt(), m = fs.NextLong();
long[] a = new long[n];
for (int i = 0; i < n; i++)
{
a[i] = fs.NextLong();
}
Array.Sort(a);
long sum = 0, j = 1, k = 0, count = 0;
StringBuilder sb = new StringBuilder();
while (sum < m && j <= 1e9)
{
if (k < n && j == a[k])
{
k++;
}
else
{
if (sum + j <= m)
{
count++;
sum += j;
sb.Append(j + " ");
}
else break;
}
j++;
}
//string ans = sb.ToString();
//if (ans.Length > 0 && ans.Last() == ' ') ans = ans.Substring(0, ans.Length - 1);
writer.WriteLine(count);
if (count > 0) writer.WriteLine(sb);
}
}
示例14: Run
public static void Run()
{
using (FastScanner fs = new FastScanner(new BufferedStream(Console.OpenStandardInput())))
using (StreamWriter writer = new StreamWriter(new BufferedStream(Console.OpenStandardOutput())))
{
long s = fs.NextLong(), x = fs.NextLong();
if (s < x || (s - x) % 2 != 0)
{
writer.WriteLine(0);
return;
}
long and = (s - x) / 2;
string xorStr = Convert.ToString(x, 2), andStr = Convert.ToString(and, 2);
int onesNum = 0;
foreach (char c in xorStr)
{
if (c == '1') onesNum++;
}
string shortStr = xorStr;
string longStr = andStr;
if (xorStr.Length > andStr.Length)
{
shortStr = andStr;
longStr = xorStr;
}
int p = longStr.Length - 1;
for (int i = shortStr.Length - 1; i >= 0; i--, p--)
{
if (shortStr[i] == '1' && longStr[p] == '1')
{
writer.WriteLine(0);
return;
}
}
writer.WriteLine(Math.Pow(2, onesNum) - (and == 0 ? 2 : 0));
}
}
示例15: Run
public static void Run()
{
using (FastScanner fs = new FastScanner(new BufferedStream(Console.OpenStandardInput())))
using (StreamWriter writer = new StreamWriter(new BufferedStream(Console.OpenStandardOutput())))
{
int k = fs.NextInt(), mod = (int)1e9 + 7;
long[] a = new long[k];
bool isEven = false;
for (int i = 0; i < k; i++)
{
a[i] = fs.NextLong();
if (!isEven && a[i] % 2 == 0) isEven = true;
}
long Dn = 2;
for (int i = 0; i < k; i++)
{
Dn = BinPowMod(Dn, a[i], mod);
}
Dn = (Dn * BinPowMod(2, mod - 2, mod)) % mod;
long Nm = Dn + (isEven ? 1 : -1);
Nm = (Nm * BinPowMod(3, mod - 2, mod)) % mod;
writer.WriteLine(Nm + "/" + Dn);
}
}