結果
問題 | No.494 yukicoder |
ユーザー |
|
提出日時 | 2017-03-24 22:23:26 |
言語 | Java (openjdk 23) |
結果 |
AC
|
実行時間 | 105 ms / 2,000 ms |
コード長 | 7,251 bytes |
コンパイル時間 | 2,767 ms |
コンパイル使用メモリ | 89,892 KB |
実行使用メモリ | 41,248 KB |
最終ジャッジ日時 | 2024-07-06 02:31:49 |
合計ジャッジ時間 | 4,028 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 7 |
ソースコード
package main;import java.util.ArrayList;import java.util.HashMap;import java.util.HashSet;import java.util.List;import java.util.Scanner;public class Main {private static int[] arr;private int[][] ar2;private List<Integer> list;public static int n,m,k;private static HashSet<Integer> set;private static HashMap<Integer, Integer> map;private static Scanner sc = new Scanner(System.in);private static List<List<Integer>> ll;private static List<HashSet<Integer>> hList;public static void main(String[] args){//n = sc.nextInt();//arr = new int[n];String string = sc.nextLine();String yuki = "yukicoder";int id = string.indexOf('?');System.out.println(yuki.charAt(id));}}class array2D{public int[][] arr;public array2D(int row, int col) {arr = new int[row][col];for(int i=0; i<row; i++){arr[i] = new int[col];for(int j=0; j<col; j++){arr[i][j ]=0;}}}}class Tupple{int a=0, b=0;public Tupple(int x, int y) {// TODO 自動生成されたコンストラクター・スタブthis.a = x;this.b = y;}public int first() {return this.a;}public int second() {return this.b;}}class sqrtArr{public int[] arr;public int n;public sqrtArr(int x , int[] original) {this.n = (int)Math.sqrt(x)+1;arr = new int[n];for(int i=0; i<x; i++){arr[i/n] += original[i];}}public int get(int l , int r) {int sum =0;for(int i=l; i<=r;){if(i% n==0 && i+n-1 <=r){sum += arr[i/n];i += n;}else {sum +=arr[i];i++;}}return sum;}}class UnionFind{public int[] path;public int[] size;public List<HashSet<Integer>> list;public UnionFind (int n, int[] original) {path = new int[n+1];size = new int[n+1];list = new ArrayList<HashSet<Integer>>();for(int i=0; i<n; i++){path[i] = i;size[i] =1;list.add(new HashSet<Integer>());list.get(i).add(original[i]);}}public int root(int i){while (path[i] != i) {path[i] = path[path[path[i]]];i = path[i];}return i;}public boolean find(int p, int q) {if(p<0 || q<0)return false;return root(p) == root(q);}public void uniite(int p, int q) {if(p<0 || q<0)return;int i = root(p);int j = root(q);if(i==j)return;if(size[i]>size[j]){// int tmp = i;l// i=j;// j = tmp;i^=j^=i^=j;}size[j ] += size[i];path[i] = j;}}class BIT{int n;private int[] bit = new int[100010];public BIT(int x , int[] original){this.n = x;for(int i=1; i<=n; i++){//bit[i] = original[i];add(i, original[i]);}}public void add(int a, int w) {for(int i = a; i<=n; i+= i&(-i))bit[i] +=w;}public int sum(int a) {int sum = 0;for(int i=a;i>0; i-=i&(-i)) sum+=bit[i];return sum;}public int binary(int w){if(w<=0)return 0;int x =0;for(int k = n%2==0? n:n-1; k>0; k/=2){if(x+k<=n && bit[x+k]<w){w -=bit[x+k];x += k;}}return x+1;}}class Segment{int n;int size ;private int[] dat;//private HashSet<Integer>[] dat;public Segment(int x) {this.n = x;this.size = x*2;dat = new int[size];//dat = new HashSet<Integer>[size];for(int i=0; i<size;i++){dat[i] = Integer.MAX_VALUE;//dat[i ] = new HashSet<>();}}public void update(int i, int x) {i = n+i-1;dat[i ] = x;while (i>0) {i =(i-1)/2;dat[i] = Math.min(dat[i*2+1], dat[i*2+2]);}}int query(int a, int b, int k, int l, int r){if(r<=a || b<=l)return Integer.MAX_VALUE;if(a<=l && r<=b)return dat[k];else {int vl = query(a, b, k*2+1, l, (l+r)/2);int vr = query(a, b, k*2+2, (l+r)/2, r);return Math.min(vl, vr);}}}class Tree{int n,l ;private int[][] g;private int[] tin,tout;int timer;private int[][] up;public Tree(int n){this.n = n;tin = new int[n+1];tout = new int[n+1];timer = 0;g= new int[n+1][l];up = new int[n+1][l];l = 1;while ((1 << l) <= n) ++ l;//for (int i = 0; i <n; ++ i) up [i] = new int[l+1];for(int i=0; i<=n; i++){g[i] = new int[l+1];up[i]= new int[l+1];}}void dfs (int v, int p) {tin [v] = ++ timer;up [v] [0] = p;for (int i = 1; i <= l; ++ i)up [v] [i] = up [up [v] [i-1]] [i-1];for (int i = 0; i <g [v].length; ++ i) {int to = g [v] [i];if (to!= p)dfs (to, v);}tout [v] = ++ timer;}boolean upper (int a, int b) {return tin [a] <= tin [b] && tout [a]>= tout [b];}int lca (int a, int b) {if (upper (a, b)) return a;if (upper (b, a)) return b;for (int i = l; i>= 0; --i)if (! upper (up [a] [i], b))a = up [a] [i];return up [a] [0];}}//class Tree{// int n,l ;// private int[][] g;// private int[] tin,tout;// int timer;// private int[][] up;// private int[] parent ;//// public Tree(int n){// this.n = n;// this.l = (int)Math.pow(2,n);// tin = new int[n+1];// tout = new int[n+1];// timer = 0;// parent = new int[n+1];// g= new int[n+1][n+1];// up = new int[n+1][n+1];// for(int i=0; i<=n; i++){// g[i] = new int[n+1];// up[i]= new int[n+1];// }// }//// void preprocess(){// //Every element in P[][] is -1 initially;// for(int i = 1 ; i <= n ; ++i){// for(int j = 0 ; (1<<j) < n ; ++i){// g[i][j] = -1;// }// }//// //The first ancestor(2^0 th ancestor)// //for every node is parent[node]// for(int i = 1 ; i <= n ; ++i){// g[i][0] = parent[i] ;// }//// for(int j = 1; (1<<j) < n ; ++j){// for(int i = 1 ; i <= n ; ++i){// //If a node does not have a (2^(j-1))th ancestor// //Then it does not have a (2^j)th ancestor// //and hence P[i][j] should remain -1// //Else the (2^j)th ancestor of node i// //is the (2^(j-1))th ancestor of ((2^(j-1))th ancestor of node i)// if(g[i][j-1] != -1){// g[i][j] = g[g[i][j-1]][j-1] ;// }// }// }// }// int LCA(int u , int v){// if(level[u] < level[v]){// swap(u,v) ;// }// //u is the node at a greater depth/lower level// //So we have to raise u to be at the same// //level as v.// int dist = level[u] - level[v] ;// while(dist > 0){// int raise_by = log2(dist);// u = P[u][raise_by];// dist -= (1<<raise_by) ;// }//// if(u == v){// return u ;// }//// //Now we keep raising the two nodes by equal amount// //Untill each node has been raised uptill its (k-1)th ancestor// //Such that the (k)th ancestor is the lca.// //So to get the lca we just return the parent of (k-1)th ancestor// //of each node//// for(int j = MAXLOG ; j >= 0 ; --j){// //Checking P[u][j] != P[v][j] because if P[u][j] == P[v][j]// //P[u][j] would be the Lth ancestor such that (L >= k)// //where kth ancestor is the LCA// //But we want the (k-1)th ancestor.// if((P[u][j] != -1) and (P[u][j] != P[v][j])){// u = P[u][j] ;// v = P[v][j] ;// }// }// return parent[u] ; //or parent[v]// }//}