Pagini recente » Cod sursa (job #2360221) | Cod sursa (job #609458) | Cod sursa (job #2272286) | Cod sursa (job #629188) | Cod sursa (job #2666094)
import java.io.DataOutputStream;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Scanner;
class Pair{
int Q;
int P;
public Pair(int Q, int P) {
this.Q = Q;
this.P = P;
}
public int getQ() {
return Q;
}
public int getP() {
return P;
}
}
public class Main {
int n;
int m;
int[] anc;
Pair[] questions;
int[][] G;
public void readFromFile(String fileName) throws FileNotFoundException {
File file = new File(fileName);
Scanner sc = new Scanner(file);
n = sc.nextInt();
m = sc.nextInt();
anc = new int[n];
for(int i = 0; i < n; i++) {
anc[i] = sc.nextInt();
}
questions = new Pair[m];
for(int i = 0; i < m; i++) {
questions[i] = new Pair(sc.nextInt(), sc.nextInt());
}
}
public void buildGraph() {
G = new int[n][];
for(int i = 0; i < n; i++) {
G[i] = new int[n];
for(int j = 0; j < n; j++) {
G[i][j] = 0;
}
}
for(int i = 0; i < n; i++) {
if(anc[i]-1 >= 0)
G[i][anc[i]-1] = 1;
}
}
public void answerToQuestions(String fileName) throws IOException{
FileWriter wr = new FileWriter(fileName);
for(int i = 0; i < m; i++) {
int Q = questions[i].getQ();
int P = questions[i].getP();
Q--;
while(P > 0){
int j;
for(j = 0; j < n; j++)
if(G[Q][j] == 1){
Q = j;
P--;
break;
}
if(j == n)
{
Q = -1;
break;
}
}
Integer q = Q+1;
wr.write(q.toString().toCharArray());
wr.write("\n");
}
wr.close();
}
public Main() {
try {
readFromFile("stramosi.in");
}catch(FileNotFoundException e) {
e.printStackTrace();
}
buildGraph();
try {
answerToQuestions("stramosi.out");
}catch(IOException e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
new Main();
}
}