Skip to content
This repository was archived by the owner on Feb 29, 2024. It is now read-only.

Commit 7a2ead9

Browse files
authored
Add files via upload
1 parent 1f4c498 commit 7a2ead9

File tree

9 files changed

+320
-0
lines changed

9 files changed

+320
-0
lines changed

meetings.in

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
3 5
2+
1 1 1
3+
2 2 -1
4+
3 3 -1

meetings.java

Lines changed: 182 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,182 @@
1+
import java.io.*;
2+
import java.util.*;
3+
public class meetings {
4+
public static void main(String[] args) throws IOException {
5+
BufferedReader f = new BufferedReader(new FileReader("meetings.in"));
6+
PrintWriter pw = new PrintWriter(new BufferedWriter(new FileWriter("meetings.out")));
7+
int stoppedWeight = 0;
8+
StringTokenizer st = new StringTokenizer(f.readLine());
9+
int N = Integer.parseInt(st.nextToken());
10+
int L = Integer.parseInt(st.nextToken());
11+
//List<Event> eventSeq = new ArrayList<>();
12+
List<Cow> cows = new ArrayList<>();
13+
double halfSumWeight = 0;
14+
int preP=0;
15+
for(int i =0 ; i < N; i ++) {
16+
st = new StringTokenizer(f.readLine());
17+
int w,v,p,d;
18+
w = Integer.parseInt(st.nextToken());
19+
p = Integer.parseInt(st.nextToken())*2;
20+
v = Integer.parseInt(st.nextToken());
21+
d = 0;
22+
//System.out.println(v);
23+
cows.add(new Cow(w,p,v, d));
24+
halfSumWeight += w;
25+
}
26+
halfSumWeight = halfSumWeight/2;
27+
L = 2*L;
28+
29+
cows.sort(null);
30+
preP = cows.get(0).P;
31+
int minDis;
32+
minDis = L + 1;
33+
for(int i =1 ; i < cows.size(); i ++) {
34+
int d = cows.get(i).P - preP;
35+
cows.get(i).D = d;
36+
if(cows.get(i-1).V == 1&& cows.get(i).V==-1)
37+
{
38+
if(d<minDis)
39+
{
40+
minDis = d;
41+
}
42+
}
43+
preP = cows.get(i).P;
44+
45+
}
46+
47+
48+
if(cows.get(0).V == -1)
49+
{
50+
int d = cows.get(0).P;
51+
if(d<minDis)
52+
{
53+
minDis = 2*d;
54+
}
55+
56+
}
57+
58+
if(cows.get(cows.size()-1).V == 1)
59+
{
60+
int d = cows.get(cows.size()-1).P;
61+
if(d<minDis)
62+
{
63+
minDis = 2*d;
64+
}
65+
66+
}
67+
//System.out.println(cows);
68+
//int curTime = 0;
69+
int meet = 0;
70+
int elapsetime = minDis/2;
71+
72+
73+
while(true) {
74+
//Event nextEvent = null;
75+
76+
cows.get(0).P = cows.get(0).P + cows.get(0).V*elapsetime;
77+
int i = 1;
78+
for(i = 1; i < cows.size(); i ++) {
79+
int tmpI = cows.get(i).P + cows.get(i).V*elapsetime;
80+
if (cows.get(i-1).P == tmpI)
81+
{
82+
cows.get(i).V = -cows.get(i).V;
83+
cows.get(i-1).V = -cows.get(i-1).V;
84+
meet++;
85+
}
86+
cows.get(i).P = tmpI;
87+
}
88+
int nCow = i-1;
89+
if(cows.get(0).P == 0) {
90+
stoppedWeight += cows.get(0).W;
91+
cows.remove(0);
92+
nCow--;
93+
}
94+
if(cows.get(nCow).P == L) {
95+
stoppedWeight += cows.get(nCow).W;
96+
cows.remove(nCow);
97+
}
98+
99+
if(stoppedWeight >= halfSumWeight) {
100+
break;
101+
}
102+
103+
preP = cows.get(0).P;
104+
minDis = L + 1;
105+
for(i =1 ; i < cows.size(); i ++) {
106+
int d = cows.get(i).P - preP;
107+
cows.get(i).D = d;
108+
if(cows.get(i-1).V == 1&& cows.get(i).V==-1)
109+
{
110+
if(d<minDis)
111+
{
112+
minDis = d;
113+
}
114+
}
115+
preP = cows.get(i).P;
116+
117+
}
118+
119+
120+
if(cows.get(0).V == -1)
121+
{
122+
int d = cows.get(0).P;
123+
if(d<minDis)
124+
{
125+
minDis = 2*d;
126+
}
127+
128+
}
129+
130+
if(cows.get(cows.size()-1).V == 1)
131+
{
132+
int d = cows.get(cows.size()-1).P;
133+
if(d<minDis)
134+
{
135+
minDis = 2*d;
136+
}
137+
138+
}
139+
elapsetime = minDis/2;
140+
141+
}
142+
pw.println(meet);
143+
f.close();
144+
pw.close();
145+
}
146+
147+
}
148+
class Cow implements Comparable<Cow>{
149+
public int W,P,V, D;
150+
public Cow(int W,int P, int V, int D) {
151+
this.W = W;
152+
this.P = P;
153+
this.V = V;
154+
this.D = D;
155+
}
156+
@Override
157+
public int compareTo(Cow o) {
158+
return Integer.compare(this.P, o.P);
159+
}
160+
@Override
161+
public String toString() {
162+
return "#"+P+" moving at "+V+" with weight"+W;
163+
}
164+
165+
}
166+
class Event implements Comparable<Event>{
167+
@Override
168+
public String toString() {
169+
return "@"+time+" "+cow1+" collides with "+cow2+" at pos "+pos;
170+
}
171+
public int time,pos,cow1,cow2;
172+
public Event(int time, int pos, int cow1, int cow2) {
173+
this.time = time;
174+
this.pos = pos;
175+
this.cow1 = cow1;this.cow2 = cow2;
176+
}
177+
@Override
178+
public int compareTo(Event o) {
179+
// TODO Auto-generated method stub
180+
return Integer.compare(this.time, o.time);
181+
}
182+
}

meetings.out

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
2

milkvisits.in

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
5 5
2+
HHGHG
3+
1 2
4+
2 3
5+
2 4
6+
1 5
7+
1 4 H
8+
1 4 G
9+
1 3 G
10+
1 3 H
11+
5 5 H

milkvisits.java

Lines changed: 89 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,89 @@
1+
import java.io.*;
2+
import java.util.*;
3+
public class milkvisits {
4+
public static void main(String[] args) throws IOException {
5+
BufferedReader f = new BufferedReader(new FileReader("milkvisits.in"));
6+
PrintWriter pw = new PrintWriter(new BufferedWriter(new FileWriter("milkvisits.out")));
7+
StringTokenizer st = new StringTokenizer(f.readLine());
8+
int N = Integer.parseInt(st.nextToken());
9+
int M = Integer.parseInt(st.nextToken());
10+
char[] lookup = f.readLine().toCharArray();
11+
Map<Integer, List<Integer>> connections = new HashMap<>();
12+
for(int i =0 ; i < N; i ++) {
13+
connections.put(i+1, new ArrayList<>());
14+
}
15+
for(int i = 0; i < N-1; i ++) {
16+
st = new StringTokenizer(f.readLine());
17+
int x = Integer.parseInt(st.nextToken());
18+
int y = Integer.parseInt(st.nextToken());
19+
connections.get(x).add(y);
20+
connections.get(y).add(x);
21+
}
22+
String answer = "";
23+
for(int i =0 ; i < M; i ++) {
24+
st = new StringTokenizer(f.readLine());
25+
int a = Integer.parseInt(st.nextToken());
26+
int b = Integer.parseInt(st.nextToken());
27+
char pref = st.nextToken().charAt(0);
28+
Set<Integer> visited = new HashSet<>();
29+
Queue<Traversal> options = new LinkedList<>();
30+
List<Integer> base = new ArrayList<>();
31+
base.add(a);
32+
options.add(new Traversal(base, lookup[a-1] == pref));
33+
while(!options.isEmpty()) {
34+
Traversal t =options.poll();
35+
int lastNode = t.nodes.get(t.nodes.size()-1);
36+
if(lastNode == b) {
37+
if(lookup[b-1] == pref || t.good) {
38+
answer += "1";
39+
}else {
40+
answer += "0";
41+
}
42+
break; // FINALLY
43+
}
44+
for(int node: connections.get(lastNode)) {
45+
if(visited.contains(node)) {
46+
continue;
47+
}
48+
List<Integer> al = new ArrayList<>(t.nodes);
49+
al.add(node);
50+
options.add(new Traversal(al, lookup[node-1] == pref || t.good));
51+
}
52+
visited.add(lastNode);
53+
}
54+
}
55+
pw.println(answer);
56+
f.close();
57+
pw.close();
58+
}
59+
60+
}
61+
class Traversal {
62+
List<Integer> nodes;
63+
boolean good;
64+
public Traversal(List<Integer> nodes, boolean gotMilk) {
65+
this.good =gotMilk;
66+
this.nodes = nodes;
67+
}
68+
}
69+
class Path{
70+
public int x,y,w;
71+
public Path(int x,int y) {
72+
this.x = x;
73+
this.y = y;
74+
//this.w = length;
75+
}
76+
@Override
77+
public boolean equals(Object o) {
78+
if(o instanceof Path) {
79+
Path p = (Path) o;
80+
return (this.x == p.x)&&(this.y == p.y);
81+
}else {
82+
return false;
83+
}
84+
}
85+
@Override
86+
public int hashCode() {
87+
return Integer.hashCode(this.x) * Integer.hashCode(this.y+1);
88+
}
89+
}

milkvisits.out

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
10110

moobuzz.in

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
14

moobuzz.java

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
import java.io.*;
2+
import java.util.*;
3+
public class moobuzz {
4+
public static void main(String[] args) throws IOException {
5+
BufferedReader f = new BufferedReader(new FileReader("moobuzz.in"));
6+
PrintWriter pw = new PrintWriter(new BufferedWriter(new FileWriter("moobuzz.out")));
7+
int N = Integer.parseInt(f.readLine()) -1;
8+
int[] baseNumberTable = new int[9];
9+
int x = 0;
10+
for(int i = 0; i < 9; i ++) {
11+
while(true) {
12+
x++;
13+
if(x % 3 == 0 || x % 5 == 0) {
14+
continue;
15+
}else {
16+
baseNumberTable[i] = x;
17+
break;
18+
}
19+
}
20+
}
21+
//System.out.println(Arrays.toString(baseNumberTable));
22+
int num = N % 8;
23+
int base = baseNumberTable[num];
24+
int offset = 15 * Math.floorDiv(N, 8);
25+
pw.println(base + offset);
26+
f.close();
27+
pw.close();
28+
}
29+
30+
}

moobuzz.out

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
26

0 commit comments

Comments
 (0)