Skip to content

Commit 401994e

Browse files
committed
CJ
1 parent 5a5119e commit 401994e

10 files changed

+390
-9
lines changed

CodeJam/Dancing With the Googlers.cpp

+69
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
/*
2+
Recycled Numbers
3+
Code Jam 2012
4+
Esteban Arango Medina
5+
*/
6+
#include <algorithm>
7+
#include <iostream>
8+
#include <iterator>
9+
#include <sstream>
10+
#include <numeric>
11+
#include <sstream>
12+
#include <fstream>
13+
#include <cassert>
14+
#include <climits>
15+
#include <cstdlib>
16+
#include <cstring>
17+
#include <string>
18+
#include <cstdio>
19+
#include <vector>
20+
#include <cmath>
21+
#include <queue>
22+
#include <deque>
23+
#include <stack>
24+
#include <list>
25+
#include <map>
26+
#include <set>
27+
using namespace std;
28+
29+
int points [105];
30+
31+
int main(){
32+
//freopen("in.in", "r", stdin);
33+
freopen("out.out", "w", stdout);
34+
int t,n,s,p,cases=1;scanf("%d",&t);
35+
while(t--){
36+
printf("Case #%d: ",cases++);
37+
scanf("%d %d %d",&n,&s,&p);
38+
int actualScore,cont = 0;
39+
40+
for (int i = 0; i < n; ++i)
41+
{
42+
scanf("%d",&actualScore);
43+
int rem = actualScore/3;
44+
if(rem*3 == actualScore && rem>=p)
45+
cont++;
46+
else if(rem*3 == actualScore && s && rem+1>=p && actualScore > p){
47+
cont++;
48+
s--;
49+
}
50+
else if((actualScore - (rem*3) == 1) && rem+1 >=p)
51+
cont++;
52+
else if((actualScore - (rem*3) == 2) && (rem>=p || rem+1>=p)){
53+
cont++;
54+
}else if((actualScore - (rem*3) == 2) && rem+2 >=p && s){
55+
cont++;
56+
s--;
57+
}
58+
59+
60+
}
61+
62+
63+
printf("%d",cont);
64+
if(n)
65+
printf("\n");
66+
67+
}
68+
return 0;
69+
}

CodeJam/Recycled Numbers.cpp

+86
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,86 @@
1+
/*
2+
Recycled Numbers
3+
Code Jam 2012
4+
Esteban Arango Medina
5+
*/
6+
#include <algorithm>
7+
#include <iostream>
8+
#include <iterator>
9+
#include <sstream>
10+
#include <numeric>
11+
#include <sstream>
12+
#include <fstream>
13+
#include <cassert>
14+
#include <climits>
15+
#include <cstdlib>
16+
#include <cstring>
17+
#include <string>
18+
#include <cstdio>
19+
#include <vector>
20+
#include <cmath>
21+
#include <queue>
22+
#include <deque>
23+
#include <stack>
24+
#include <list>
25+
#include <map>
26+
#include <set>
27+
using namespace std;
28+
29+
string trunc(string s, int pos){
30+
string temp;
31+
temp = s.substr(0,pos);
32+
return s.substr(pos,s.length())+temp;
33+
}
34+
35+
bool diferente (string s){
36+
int size = s.length();
37+
for (int i = 1; i < size; ++i)
38+
{
39+
if(s[i-1]!=s[i])
40+
return true;
41+
}
42+
43+
return false;
44+
}
45+
46+
int main(){
47+
freopen("in.in", "r", stdin);
48+
freopen("out.out", "w", stdout);
49+
int n,a,b,cases=1;scanf("%d",&n);
50+
while(n--){
51+
map<int, set<int> > ealos;
52+
scanf("%d %d",&a,&b);
53+
printf("Case #%d: ",cases++);
54+
int contador = 0;
55+
if(a>=10){
56+
for (int i = a; i < b; ++i)
57+
{
58+
string s;
59+
stringstream out;
60+
out << i;
61+
s = out.str();
62+
int size = s.length();
63+
for(int j = size-1; j>0;--j)
64+
{
65+
int depronto;
66+
if(s[j]!='0' && diferente(s)){
67+
depronto = atoi(trunc(s,j).c_str());
68+
if((depronto>=a && depronto<=b) && depronto > atoi(s.c_str())){
69+
ealos[depronto].insert(atoi(s.c_str()));
70+
}
71+
}
72+
}
73+
}
74+
map<int, set<int> >::const_iterator itr;
75+
for (itr = ealos.begin(); itr != ealos.end(); itr++)
76+
{
77+
contador+=(*itr).second.size();
78+
}
79+
}
80+
printf("%d",contador);
81+
if(n)
82+
printf("\n");
83+
84+
}
85+
return 0;
86+
}

CodeJam/reverseWords.cpp

+62
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
/*
2+
Reverse Words
3+
Code Jam
4+
Esteban Arango Medina
5+
*/
6+
#include <algorithm>
7+
#include <iostream>
8+
#include <iterator>
9+
#include <numeric>
10+
#include <sstream>
11+
#include <fstream>
12+
#include <cassert>
13+
#include <climits>
14+
#include <cstdlib>
15+
#include <cstring>
16+
#include <string>
17+
#include <cstdio>
18+
#include <vector>
19+
#include <cmath>
20+
#include <queue>
21+
#include <deque>
22+
#include <stack>
23+
#include <list>
24+
#include <map>
25+
#include <set>
26+
using namespace std;
27+
28+
29+
int main(){
30+
freopen("B-small-practice.in", "r", stdin);
31+
freopen("reverseWords.out", "w", stdout);
32+
33+
string s;
34+
int n,cases=1;scanf("%d",&n);
35+
getline(cin,s);
36+
while(n--){
37+
38+
size_t found;
39+
vector<string> words;
40+
getline(cin,s);
41+
printf("Case #%d: ",cases++);
42+
found = s.find(" ");
43+
while(found!=string::npos){
44+
//cout<<found<<" "<<s<<endl;
45+
words.push_back(s.substr (0,found));
46+
s=s.substr(found+1,(s.length()-1));
47+
found = s.find(" ");
48+
}
49+
words.push_back(s);
50+
for (int i = words.size()-1; i >=0 ; --i)
51+
{
52+
cout<<words[i];
53+
if(i-1>=0)
54+
cout<<" ";
55+
}
56+
if(n)
57+
cout<<endl;
58+
59+
}
60+
61+
return 0;
62+
}

UVa/10082 - WERTY.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
66
77
*/
8-
#include<iostream>
8+
#include <iostream>
99

1010
using namespace std;
1111

+94
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,94 @@
1+
/*
2+
118 - Mutant Flatworld Explorers
3+
UVa Online Judge
4+
Esteban Arango Medina
5+
*/
6+
#include <algorithm>
7+
#include <iostream>
8+
#include <iterator>
9+
#include <sstream>
10+
#include <numeric>
11+
#include <sstream>
12+
#include <fstream>
13+
#include <cassert>
14+
#include <climits>
15+
#include <cstdlib>
16+
#include <cstring>
17+
#include <string>
18+
#include <cstdio>
19+
#include <vector>
20+
#include <cmath>
21+
#include <queue>
22+
#include <deque>
23+
#include <stack>
24+
#include <list>
25+
#include <map>
26+
#include <set>
27+
using namespace std;
28+
29+
int positionsX[4]= {-1,0,1,0};
30+
int positionsY[4]= {0,1,0,-1};
31+
32+
string intToString(int i){
33+
34+
string s;
35+
stringstream out;
36+
out << i;
37+
return out.str();
38+
}
39+
40+
int main(){
41+
//freopen("in.in", "r", stdin);
42+
//freopen("out.out", "w", stdout);
43+
string pointPosition = "WNES";
44+
map<string,char> moves;
45+
moves["ER"]='S';moves["EL"]='N';moves["SR"]='W';moves["SL"]='E';
46+
moves["WR"]='N';moves["WL"]='S';moves["NR"]='E';moves["NL"]='W';
47+
48+
vector<string> prohibited;
49+
50+
int r,c,x,y;
51+
scanf("%d %d",&r,&c);
52+
char ini;
53+
int p;
54+
55+
while(scanf("%d %d %c",&x,&y,&ini) != EOF){
56+
string route;
57+
cin>>route;
58+
int size = route.size();
59+
bool lost = false;
60+
for (int i = 0; i < size; ++i)
61+
{
62+
char nxt = route[i];
63+
if(nxt=='F'){
64+
p=int(pointPosition.find(ini));
65+
int newX=x+positionsX[p];
66+
int newY=y+positionsY[p];
67+
68+
string pProhibited =intToString(x);
69+
pProhibited +=intToString(y);
70+
if(!((newY>=0 && newY<=c) && (newX>=0 && newX<=r))){
71+
if(find(prohibited.begin(), prohibited.end(), pProhibited)==prohibited.end()){
72+
lost=true;
73+
prohibited.push_back(pProhibited);
74+
break;
75+
}
76+
}else{
77+
x=newX;
78+
y=newY;
79+
}
80+
81+
}else{
82+
string nPos = "";
83+
nPos.push_back(ini);
84+
nPos.push_back(nxt);
85+
ini=moves[nPos];
86+
}
87+
}
88+
(lost)?printf("%d %d %c LOST\n",x,y,ini):printf("%d %d %c\n",x,y,ini);
89+
90+
}
91+
92+
93+
94+
}

UVa/272 - TEX Quotes.cpp

+2-2
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@
55
66
*/
77

8-
#include<iostream>
9-
#include<string>
8+
#include <iostream>
9+
#include <string>
1010

1111
using namespace std;
1212

0 commit comments

Comments
 (0)