ログインしてください。
提出 #5063713
ソースコード 拡げる
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using static System.Console;
using static System.Math;
namespace atcoder
{
class Program
{
static void Main(string[] args)
{
do
{
new Program().Solve(new ConsoleInput(In));
} while (args.Length > 0 && args[0] == "Debug");
}
public void Solve(ConsoleInput input)
{
var n = input.ReadInt;
var s = input.Read;
var c = n;
var bl = new int[n];
var wh = new int[n];
if (s[0] == '#') bl[0] = 1;
else wh[0] = 1;
for(var i = 1; i < n; i++)
{
bl[i] = bl[i - 1];
wh[i] = wh[i - 1];
if (s[i] == '#') bl[i]++;
else wh[i]++;
}
for (var i = 0; i < n; i++)
{
c = (c > bl[i] + (wh[n - 1] - wh[i])) ? bl[i] + (wh[n - 1] - wh[i]) : c;
}
WriteLine($"{c}");
}
}
}
class Math
{
public static int Min(params int[] a)
{
if (a.Length == 0) return 0;
var min = a[0];
for (var i = 1; i < a.Length; i++)
{
if (min > a[i]) min = a[i];
}
return min;
}
public static long Min(params long[] a)
{
if (a.Length == 0) return 0;
var min = a[0];
for (var i = 1; i < a.Length; i++)
{
if (min > a[i]) min = a[i];
}
return min;
}
public static int Max(params int[] a)
{
if (a.Length == 0) return 0;
var max = a[0];
for (var i = 1; i < a.Length; i++)
{
if (max < a[i]) max = a[i];
}
return max;
}
public static long Max(params long[] a)
{
if (a.Length == 0) return 0;
var max = a[0];
for (var i = 1; i < a.Length; i++)
{
if (max < a[i]) max = a[i];
}
return max;
}
public static int Lcm(int a, int b)
{
return a * b / Gcd(a, b);
}
public static int Gcd(int a, int b)
{
if (a < b)
return Gcd(b, a);
while (b != 0)
{
var remainder = a % b;
a = b;
b = remainder;
}
return a;
}
}
class UnionFind
{
private int[] parent;
private int[] rank;
private long[] size;
public UnionFind(int count)
{
parent = new int[count];
rank = new int[count];
size = new long[count];
for (var i = 0; i < count; i++)
{
parent[i] = i;
rank[i] = 0;
size[i] = 1;
}
}
public int Root(int x)
{
if (parent[x] != x)
{
parent[x] = Root(parent[x]);
}
return parent[x];
}
public void Unite(int a, int b)
{
var ra = Root(a);
var rb = Root(b);
if (Size(ra) < Size(rb))
{
parent[ra] = rb;
size[rb] += size[ra];
}
else
{
parent[rb] = ra;
size[ra] += size[rb];
}
if (rank[ra] == rank[rb]) rank[ra]++;
}
public bool Same(int a, int b)
{
return Root(a) == Root(b);
}
public long Size(int x)
{
return size[Root(x)];
}
}
class ConsoleInput
{
private readonly System.IO.TextReader _stream;
private readonly char _separator;
private Queue<string> inputStream;
public ConsoleInput(System.IO.TextReader stream, char separator = ' ')
{
_separator = separator;
_stream = stream;
inputStream = new Queue<string>();
}
public string Read
{
get
{
if (inputStream.Count != 0) return inputStream.Dequeue();
string[] tmp = _stream.ReadLine().Split(_separator);
for (int i = 0; i < tmp.Length; ++i)
inputStream.Enqueue(tmp[i]);
return inputStream.Dequeue();
}
}
public string ReadLine { get { return _stream.ReadLine(); } }
public int ReadInt { get { return int.Parse(Read); } }
public long ReadLong { get { return long.Parse(Read); } }
public double ReadDouble { get { return double.Parse(Read); } }
public string[] ReadStrArray(long N) { var ret = new string[N]; for (long i = 0; i < N; ++i) ret[i] = Read; return ret; }
public int[] ReadIntArray(long N) { var ret = new int[N]; for (long i = 0; i < N; ++i) ret[i] = ReadInt; return ret; }
public long[] ReadLongArray(long N) { var ret = new long[N]; for (long i = 0; i < N; ++i) ret[i] = ReadLong; return ret; }
}
提出情報
| 提出日時 | |
|---|---|
| 問題 | C - Stones |
| ユーザ | norezark |
| 言語 | C# (Mono 4.6.2.0) |
| 得点 | 0 |
| コード長 | 5011 Byte |
| 結果 | WA |
| 実行時間 | 28 ms |
| メモリ | 16224 KiB |
ジャッジ結果
| セット名 | Sample | All | ||||||
|---|---|---|---|---|---|---|---|---|
| 得点 / 配点 | 0 / 0 | 0 / 300 | ||||||
| 結果 |
|
|
| セット名 | テストケース |
|---|---|
| Sample | s1.txt, s2.txt, s3.txt |
| All | 01.txt, 02.txt, 03.txt, 04.txt, 05.txt, 06.txt, 07.txt, 08.txt, 09.txt, 10.txt, 11.txt, 12.txt, 13.txt, 14.txt, 15.txt, 16.txt, 17.txt, 18.txt, 19.txt, 20.txt, 21.txt, 22.txt, s1.txt, s2.txt, s3.txt |
| ケース名 | 結果 | 実行時間 | メモリ |
|---|---|---|---|
| 01.txt | AC | 28 ms | 12128 KiB |
| 02.txt | AC | 28 ms | 14176 KiB |
| 03.txt | AC | 28 ms | 16224 KiB |
| 04.txt | AC | 27 ms | 12128 KiB |
| 05.txt | AC | 28 ms | 16224 KiB |
| 06.txt | AC | 28 ms | 14176 KiB |
| 07.txt | AC | 27 ms | 12128 KiB |
| 08.txt | AC | 27 ms | 12128 KiB |
| 09.txt | WA | 27 ms | 14176 KiB |
| 10.txt | WA | 26 ms | 14176 KiB |
| 11.txt | AC | 27 ms | 14176 KiB |
| 12.txt | AC | 27 ms | 12128 KiB |
| 13.txt | WA | 27 ms | 14176 KiB |
| 14.txt | AC | 27 ms | 16224 KiB |
| 15.txt | AC | 27 ms | 16224 KiB |
| 16.txt | AC | 27 ms | 14176 KiB |
| 17.txt | AC | 26 ms | 12128 KiB |
| 18.txt | AC | 27 ms | 14176 KiB |
| 19.txt | AC | 23 ms | 11220 KiB |
| 20.txt | WA | 22 ms | 9172 KiB |
| 21.txt | AC | 23 ms | 11220 KiB |
| 22.txt | AC | 23 ms | 13268 KiB |
| s1.txt | AC | 23 ms | 11220 KiB |
| s2.txt | AC | 23 ms | 11220 KiB |
| s3.txt | AC | 22 ms | 9172 KiB |