Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include "time.h"
- #include "math.h"
- unsigned int evenDigits(unsigned int n)
- {
- //rekurzirvna fja koja izbacuje parne cifre iz broja n
- if (n<10 && n%2==0)
- return 0;
- if (n%2==1 && n<10)
- return n;
- if (n%2==0)
- return evenDigits(n/10);
- return (evenDigits(n/10)*10)+(n%10);
- }
- void printMat(int** mat, int m, int n)
- {
- int i,j;
- for(i=0;i<m;i++)
- {
- for(j=0;j<n;j++)
- {
- printf("%4d ",mat[i][j]);
- }
- printf("\n");
- }
- }
- void fillMatrix(int** mat, int m, int n, int k)
- {
- //ponuni matricu sa [-k,k] i nalazi lok. max matrica u cetvorosmjeru
- int i,j;
- for(i=0;i<m;i++)
- {
- for(j=0;j<n;j++)
- {
- mat[i][j]=rand()%(2*k+1)-k;
- }
- }
- for(i=0;i<m;i++)
- {
- for(j=0;j<n;j++)
- {
- if (i-1>=0 && mat [i-1][j]>=mat[i][j])
- continue;
- if (i+1<m && mat [i+1][j]>=mat[i][j])
- continue;
- if (j-1>=0 && mat [i][j-1]>=mat[i][j])
- continue;
- if (j+1>n && mat [i][j+1]>=mat[i][j])
- continue;
- printf("(%d,%d) = %d\n",i,j,mat[i][j]);
- }
- }
- }
- /*ima dva kopir aparata koji rade razlicitom brzinom
- prvi x sekundi, drugi y
- mogu se koristiti oba istovremeno
- potrebno je naci min vrijeme za koje se n list iskopira u n primjeraka
- n-4 x-1 y-1 r:3
- n-5 x-1 y-2 r:4
- n-11 x-3 y-2 r:14
- */
- int moze(int n, int x, int y, int t)
- {
- return t/x+t/y>=n;
- }
- int kopir(int n,int x, int y)
- {
- int sol=x<y?x:y;
- n--;
- int l=0;
- int r=n*x; //svejedno koji kopir
- while(l<=r)
- {
- if (l==r)
- {
- return sol+l;
- }
- int mid=(l+r)/2;
- if(moze(n,x,y,mid))
- {
- r=mid;
- }
- else l=mid+1;
- }
- }
- int main()
- {
- printf("%d\n", evenDigits(12345));
- printf("%d\n", evenDigits(1));
- printf("%d\n", evenDigits(286));
- printf("%d\n", evenDigits(33579));
- printf("%d\n", evenDigits(22222889));
- int m,n,k;
- scanf("%d",&m);
- scanf("%d",&n);
- scanf("%d",&k);
- int ** mat=malloc(m*sizeof(int*));
- int i;
- for (i=0;i<m;i++)
- {
- mat[i]=malloc(n*sizeof(int));
- }
- srand(time(0));
- fillMatrix(mat,m,n,k);
- printMat(mat,m,n);
- printf("%d\n",kopir(11,3,2));
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement