Skip to content

Commit 0a4882b

Browse files
authored
Add files via upload
1 parent 02ae327 commit 0a4882b

1 file changed

Lines changed: 83 additions & 0 deletions

File tree

BestTime2Party.c

Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,83 @@
1+
#include <stdio.h>
2+
3+
void findMaxBands(int n,int arr1[n],int depr[n]);
4+
void quickSort(int a[],int l,int h);
5+
int partition(int a[],int l,int h);
6+
7+
int main(){
8+
printf("Doste arithmo pareuriskomenon mpanton: ");
9+
int n;
10+
scanf("%d",&n);
11+
int arrl[n],depr[n];
12+
for(int i = 0; i<n; i++){
13+
printf("%d mpanta\n",i+1);
14+
printf("Doste ora afixis %d mpantas: ",i+1);
15+
scanf("%d",&arrl[i]);
16+
printf("Doste ora anaxorisis %d mpantas: ",i+1);
17+
scanf("%d",&depr[i]);
18+
}
19+
findMaxBands(n,arrl,depr);
20+
return 0;
21+
}
22+
23+
void findMaxBands(int n,int arrl[n],int depr[n]){
24+
quickSort(arrl,0,n-1); //taksinomo tous pinakes asxetos ama xalao tis periodous me grigori methodo
25+
quickSort(depr,0,n-1);
26+
int depr_time[n];
27+
int bandsIn = 1,maxBands = 1;
28+
depr_time[0] = depr[0];
29+
int i = 1, j = 0,k = 0;
30+
31+
while (i < n && j < n){ //elengxo mexri na teleiosoun oi pinakes
32+
if (arrl[i] < depr[j]){
33+
bandsIn++; //auksano tis mpantes stin idia periodo
34+
if (bandsIn >= maxBands){
35+
if(bandsIn == maxBands)k++; //to k einai gia na kratiso tis perissoteres fores poy emfanizete idios arithmos mpantwn
36+
else k = 0;
37+
maxBands = bandsIn;
38+
depr_time[k] = depr[j]; //kratao tin anaxorisi tis megistis mpantas
39+
}
40+
i++;
41+
}
42+
else{
43+
bandsIn--; //bgazo tin teleutea mpanta afou to arrl den ginete na einai megalitero apo to depr se mia periodo
44+
j++; //auksanontas to j oste to depr na ginei megalitero apo to arrl kai na metraei mpantes apo ekei pou emeine kai oxi apo to 0
45+
}
46+
}
47+
for(i=0; i<=k; i++){
48+
printf("Maximum Number of Bands : %d at time %d-%d\n",maxBands,depr_time[i]-1,depr_time[i]);
49+
}
50+
}
51+
52+
void quickSort(int a[],int l,int h){
53+
int j;
54+
if(l<h){
55+
j=partition(a,l,h);
56+
quickSort(a,l,j-1);
57+
quickSort(a,j+1,h);
58+
}
59+
}
60+
61+
int partition(int a[],int l,int h){
62+
int v,i,j,temp;
63+
v=a[l];
64+
i=l;
65+
j=h+1;
66+
67+
do{
68+
do{
69+
i++;
70+
}while(a[i]<v&&i<=h);
71+
do{
72+
j--;
73+
}while(v<a[j]);
74+
if(i<j){
75+
temp=a[i];
76+
a[i]=a[j];
77+
a[j]=temp;
78+
}
79+
}while(i<j);
80+
a[l]=a[j];
81+
a[j]=v;
82+
return j;
83+
}

0 commit comments

Comments
 (0)