結果
問題 | No.2298 yukicounter |
ユーザー |
|
提出日時 | 2023-05-14 22:43:21 |
言語 | Java (openjdk 23) |
結果 |
WA
|
実行時間 | - |
コード長 | 7,987 bytes |
コンパイル時間 | 2,608 ms |
コンパイル使用メモリ | 82,532 KB |
実行使用メモリ | 67,272 KB |
最終ジャッジ日時 | 2024-11-30 08:52:54 |
合計ジャッジ時間 | 11,106 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 26 WA * 4 |
ソースコード
import java.util.*;import java.io.*;import java.math.*;class Main{void solver(){String s = in.next();String yc = "yukicoder";Map<Integer,Integer> pos = new TreeMap<>();for(int i = 0 ; i < s.length() - 8; i ++ ) {String cut = s.substring(i,i+9);if(cut.equals(yc)) {pos.put(i,i+9);}}int ans = 0;int chain = 1;int front = 1010101010;for(int start : pos.keySet()) {int end = pos.get(start);if(front == start) {ans = Math.max(ans,++chain);}else{chain = 1;}front = end;}out.print(ans);}public static void main(String[] args){out = new PrintWriter(System.out);in = new In();lr = new Library();new Main().solver();out.flush();}private static PrintWriter out;private static In in;private static Library lr ;}class Library {final int Inf = 1000000000;final long Lnf = 1000000000000000000L;final int [] X4 = {0,1,0,-1};final int [] Y4 = {-1,0,1,0};final int [] X8 = {-1,-1,0,1,1,1,0,-1};final int [] Y8 = {0,1,1,1,0,-1,-1,-1};final long MOD7 = 1000000007;final long MOD9 = 998244353 ;/** エラトステネスの篩 O(NlogN)* 素数リストを返します。*/boolean [] Eratosthenes(){int limit = 10101010;boolean [] isprime = new boolean[limit+1];Arrays.fill(isprime,true);isprime[0] = false;isprime[1] = false;for(int i = 2 ; i <= limit ; i++ ){if(!isprime[i]) continue;for(int j = i*2 ; j <= limit ; j += i ){isprime[j] = false;}}return isprime;}/** upper_bound O(logN)* keyより大きいインデックスを返します。*/int upper_bound(int [] A , int key) {int left = 0;int right = A.length;while(left < right) {int mid = (left + right) / 2;if(A[mid] <= key) left = mid + 1;else right = mid;}return right;}int upper_bound(long [] A , long key) {int left = 0;int right = A.length;while(left < right) {int mid = (left + right) / 2;if(A[mid] <= key) left = mid + 1;else right = mid;}return right;}int upper_bound(ArrayList<Integer> A , int key) {int left = 0;int right = A.size();while(left < right) {int mid = (left + right) / 2;if(A.get(mid) <= key) left = mid + 1;else right = mid;}return right;}int upper_bound(ArrayList<Long> A , long key) {int left = 0;int right = A.size();while(left < right) {int mid = (left + right) / 2;if(A.get(mid) <= key) left = mid + 1;else right = mid;}return right;}/** lower_bound O(logN)* key以下のインデックスを返します。*/int lower_bound(int [] A , int key) {int left = 0;int right = A.length;while(left < right) {int mid = (left + right) / 2;if(A[mid] < key) left = mid + 1;else right = mid;}return right;}int lower_bound(long [] A , long key) {int left = 0;int right = A.length;while(left < right) {int mid = (left + right) / 2;if(A[mid] < key) left = mid + 1;else right = mid;}return right;}int lower_bound(ArrayList<Integer> A, int key) {int left = 0;int right = A.size();while(left < right) {int mid = (left + right) / 2;if(A.get(mid) < key) left = mid + 1;else right = mid;}return right;}int lower_bound(ArrayList<Long> A, long key) {int left = 0;int right = A.size();while(left < right) {int mid = (left + right) / 2;if(A.get(mid) < key) left = mid + 1;else right = mid;}return right;}}class In{private final InputStream in = System.in;private static final Scanner sc = new Scanner(System.in);private final byte[] buffer = new byte[1024];private int ptr = 0;private int buflen = 0;private boolean hasNextByte() {if (ptr < buflen) {return true;}else{ptr = 0;try {buflen = in.read(buffer);} catch (IOException e) {e.printStackTrace();}if (buflen <= 0) {return false;}}return true;}private int readByte() {if (hasNextByte()) return buffer[ptr++]; else return -1;}private static boolean isPrintableChar(int c) {return 33 <= c && c <= 126;}public boolean hasNext() {while(hasNextByte() && !isPrintableChar(buffer[ptr])) {ptr++;}return hasNextByte();}String next() {if (!hasNext()) throw new NoSuchElementException();StringBuilder sb = new StringBuilder();int b = readByte();while(isPrintableChar(b)) {sb.appendCodePoint(b);b = readByte();}return sb.toString();}long nextLong() {if (!hasNext()) throw new NoSuchElementException();long n = 0;boolean minus = false;int b = readByte();if (b == '-') {minus = true;b = readByte();}if (b < '0' || '9' < b) {throw new NumberFormatException();}while(true){if ('0' <= b && b <= '9') {n *= 10;n += b - '0';}else if(b == -1 || !isPrintableChar(b)){return minus ? -n : n;}else{throw new NumberFormatException();}b = readByte();}}int nextInt() {long nl = nextLong();if (nl < Integer.MIN_VALUE || nl > Integer.MAX_VALUE) throw new NumberFormatException();return (int) nl;}double nextDouble() {return Double.parseDouble(next());}BigInteger nextBigInteger() {return sc.nextBigInteger();}BigDecimal nextBigDecimal() {return sc.nextBigDecimal();}int [] IntArray(int n) {final int [] Array = new int [n];for(int i = 0 ; i < n ; i ++ ) {Array[i] = nextInt();}return Array;}int [][] IntArray(int n , int m) {final int [][] Array = new int [n][m];for(int i = 0 ; i < n ; i ++ ) {Array[i] = IntArray(m);}return Array;}long [] LongArray(int n) {final long [] Array = new long [n];for(int i = 0 ; i < n ; i ++ ) {Array[i] = nextLong();}return Array;}long [][] LongArray(int n , int m) {final long [][] Array = new long [n][m];for(int i = 0 ; i < n ; i ++ ) {Array[i] = LongArray(m);}return Array;}String [] StringArray(int n) {final String [] Array = new String [n];for(int i = 0 ; i < n ; i ++ ) {Array[i] = next();}return Array;}char [][] CharArray(int n , int m) {final char [][] Array = new char [n][m];for(int i = 0 ; i < n ; i ++ ) {Array[i] = next().toCharArray();}return Array;}}